﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Text;
using netDxf;
using netDxf.Blocks;
using netDxf.Collections;
using netDxf.Entities;
using netDxf.Header;
using netDxf.Objects;
using netDxf.Tables;
using netDxf.Units;
using Point = netDxf.Entities.Point;
using Trace = netDxf.Entities.Trace;
using System.Threading;

namespace TestDxfDocument
{
    class GB16460
    {

        private static double distance(Vector3 pp1, Vector2 pp2)
        {
            double dist;
            dist = Math.Sqrt(Math.Pow((pp2.X - pp1.X), 2) + Math.Pow((pp2.Y - pp1.Y), 2));
            return dist;
        }
        private static double distance1(Vector2 pp1, Vector2 pp2)
        {
            double dist;
            dist = Math.Sqrt(Math.Pow((pp2.X - pp1.X), 2) + Math.Pow((pp2.Y - pp1.Y), 2));
            return dist;
        }
        private static void dimrot1(DxfDocument dxf1, Vector2 fp1, Vector2 fp2, double ang, double offset, String text, String toh, String tol)
        {
            Vector2 fp1p = fp1;
            Vector2 fp2p = fp2;
            if (fp2.Y > fp1.Y) { fp1 = fp2p; fp2 = fp1p; }

            double pi = 3.1415926535897;
            //       if (text.Contains("φ")) text = text+"  ";

            /*            double ang1,angp;
                        if (fp2.X == fp1.X)
                        {
                            if (fp2.Y > fp1.Y) ang1 = 90;
                            else ang1 = -90;
                        }
                        else
                        {
                            ang1=Math.Atan((fp2.Y-fp1.Y)/(fp2.X-fp1.X))*180/pi;
                        }
                        ang1=Math.Abs(ang1);
                        if (fp2.Y > fp1.Y) angp = 90 - ang - (90 - ang1);
                        else angp = 90 + ang - (90 - ang1);*/
            Vector2 fpp = new Vector2((fp1.X + fp2.X) / 2.0, (fp1.Y + fp2.Y) / 2.0);
            double ang1 = 0, ang2 = 0, ang3 = 0;
            if (ang > -90 && ang <= 90)
            {
                ang1 = ang; ang2 = 90 + ang; ang3 = ang2;
            }
            if (ang >= -180 && ang <= -90)
            {
                ang1 = 180 + ang; ang2 = 90 + ang; ang3 = ang2 + 180;
            }
            if (ang > 90 && ang <= 180)
            {
                ang1 = ang - 180; ang2 = ang - 270; ang3 = ang2 + 180;
            }
            Vector2 fp7p = new Vector2(fpp.X + offset * Math.Cos(ang2 * pi / 180), fpp.Y + offset * Math.Sin(ang2 * pi / 180));

            double xx = (fp7p.Y - Math.Tan(ang1 * pi / 180) * fp7p.X - fp1.Y + Math.Tan(ang2 * pi / 180) * fp1.X) / (Math.Tan(ang2 * pi / 180) - Math.Tan(ang1 * pi / 180));
            double yy = Math.Tan(ang1 * pi / 180) * xx + fp7p.Y - Math.Tan(ang1 * pi / 180) * fp7p.X;
            if (ang1 == 90.0 || ang1 == -90.0)
            {
                xx = fp7p.X;
                yy = fp1.Y;
            }
            Vector2 fp3 = new Vector2(xx, yy);

            double xx1 = (fp7p.Y - Math.Tan(ang1 * pi / 180) * fp7p.X - fp2.Y + Math.Tan(ang2 * pi / 180) * fp2.X) / (Math.Tan(ang2 * pi / 180) - Math.Tan(ang1 * pi / 180));
            double yy1 = Math.Tan(ang1 * pi / 180) * xx1 + fp7p.Y - Math.Tan(ang1 * pi / 180) * fp7p.X;
            if (ang1 == 90.0 || ang1 == -90.0)
            {
                xx1 = fp7p.X;
                yy1 = fp2.Y;
            }

            Vector2 fp4 = new Vector2(xx1, yy1);

            double lp3p4 = distance1(fp3, fp4);

            Vector2 fp5 = new Vector2(fp3.X + 2 * Math.Cos(ang2 * pi / 180), fp3.Y + 2 * Math.Sin(ang2 * pi / 180));
            Vector2 fp6 = new Vector2(fp4.X + 2 * Math.Cos(ang2 * pi / 180), fp4.Y + 2 * Math.Sin(ang2 * pi / 180));
            Vector2 fpl, fpr;
            fpl = fp3; fpr = fp4;

            if (ang >= 0 && ang <= 90)
            {
                if (fp3.X < fp4.X || fp3.Y < fp4.Y)
                {
                    fpl = fp3; fpr = fp4;
                }
                else
                {
                    fpl = fp4; fpr = fp3;
                }
            }
            if (ang > -90 && ang < 0)
            {
                if (fp3.X < fp4.X || fp3.Y > fp4.Y)
                {
                    fpl = fp3; fpr = fp4;
                }
                else
                {
                    fpl = fp4; fpr = fp3;
                }
            }
            if (ang > 90 && ang <= 180)
            {
                if (fp3.X < fp4.X || fp3.Y > fp4.Y)
                {
                    fpl = fp3; fpr = fp4;
                }
                else
                {
                    fpl = fp4; fpr = fp3;
                }
            }
            if (ang >= -180 && ang <= -90)
            {
                if (fp3.X < fp4.X || fp3.Y < fp4.Y)
                {
                    fpl = fp3; fpr = fp4;
                }
                else
                {
                    fpl = fp4; fpr = fp3;
                }
            }

            Vector2 fp7pp = new Vector2(fpl.X + 2.5 / distance1(fp3, fp4) * (fpl.X - fpr.X), fpl.Y + 2.5 / distance1(fpl, fpr) * (fpl.Y - fpr.Y));
            Vector2 fp7 = new Vector2(fp7pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos(ang2 * pi / 180), fp7pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin(ang2 * pi / 180));
            Vector2 fp8 = new Vector2(fp7pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos((ang2 + 180) * pi / 180), fp7pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin((ang2 + 180) * pi / 180));

            Vector2 fp9pp = new Vector2(fpl.X + 2.5 / distance1(fpr, fpl) * (fpr.X - fpl.X), fpl.Y + 2.5 / distance1(fpl, fpr) * (fpr.Y - fpl.Y));
            Vector2 fp9 = new Vector2(fp9pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos(ang2 * pi / 180), fp9pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin(ang2 * pi / 180));
            Vector2 fp10 = new Vector2(fp9pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos((ang2 + 180) * pi / 180), fp9pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin((ang2 + 180) * pi / 180));

            Vector2 fp11pp = new Vector2(fpr.X + 2.5 / distance1(fpl, fpr) * (fpr.X - fpl.X), fpr.Y + 2.5 / distance1(fpl, fpr) * (fpr.Y - fpl.Y));
            Vector2 fp11 = new Vector2(fp11pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos(ang2 * pi / 180), fp11pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin(ang2 * pi / 180));
            Vector2 fp12 = new Vector2(fp11pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos((ang2 + 180) * pi / 180), fp11pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin((ang2 + 180) * pi / 180));

            Vector2 fp13pp = new Vector2(fpr.X + 2.5 / distance1(fpl, fpr) * (fpl.X - fpr.X), fpr.Y + 2.5 / distance1(fpl, fpr) * (fpl.Y - fpr.Y));
            Vector2 fp13 = new Vector2(fp13pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos(ang2 * pi / 180), fp13pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin(ang2 * pi / 180));
            Vector2 fp14 = new Vector2(fp13pp.X + 2.5 * Math.Tan(10 * pi / 180) * Math.Cos((ang2 + 180) * pi / 180), fp13pp.Y + 2.5 * Math.Tan(10 * pi / 180) * Math.Sin((ang2 + 180) * pi / 180));

            Vector2 fp15 = new Vector2(fpl.X + (text.Length * 3.5 + Math.Max(tol.Length, toh.Length) * 1.5) * 0.7 / distance1(fpl, fpr) * (fpl.X - fpr.X),
                                       fpl.Y + (text.Length * 3.5 + Math.Max(tol.Length, toh.Length) * 1.5) * 0.7 / distance1(fpl, fpr) * (fpl.Y - fpr.Y));
            Vector2 fp16 = new Vector2(fpr.X + (text.Length * 3.5 + Math.Max(tol.Length, toh.Length) * 1.5) * 0.7 / distance1(fpl, fpr) * (fpr.X - fpl.X),
                                       fpr.Y + (text.Length * 3.5 + Math.Max(tol.Length, toh.Length) * 1.5) * 0.7 / distance1(fpl, fpr) * (fpr.Y - fpl.Y));

            double jl, angtext;
            //           if (ang > -90 && ang <= 90) jl = 2;
            //           else jl = -2;
            jl = 2;
            angtext = ang1;

            double sxl = 0.0;
            if (!text.Contains("(")) sxl = -4;

            double lentexttol = text.Length * 3.5 * 0.7 + Math.Max(tol.Length, toh.Length) * 1.5 * 0.7;

            Vector2 fp18 = new Vector2(fp15.X + jl * Math.Cos(ang3 * pi / 180), fp15.Y + jl * Math.Sin(ang3 * pi / 180));
            Vector2 fp21 = new Vector2(fp16.X + jl * Math.Cos(ang3 * pi / 180), fp16.Y + jl * Math.Sin(ang3 * pi / 180));
            Vector2 fp21p = new Vector2(fp21.X - (Math.Max(tol.Length, toh.Length) * 1.5 * 0.7 + sxl) * 0.5 * Math.Cos(ang1 * pi / 180), fp21.Y - (Math.Max(tol.Length, toh.Length) * 1.5 * 0.7 + sxl) * 0.5 * Math.Sin(ang1 * pi / 180));
            Vector2 fp21pp = new Vector2(fp21p.X + (Math.Max(tol.Length, toh.Length) * 0.7 * 1.5 + 4) * 0.5 * Math.Cos(ang1 * pi / 180), fp21p.Y + (Math.Max(tol.Length, toh.Length) * 0.7 * 1.5 + 4) * 0.5 * Math.Sin(ang1 * pi / 180));

            Vector2 fp19 = new Vector2(fp18.X + (lentexttol + 6 + sxl) * 0.5 * Math.Cos(ang1 * pi / 180), fp18.Y + (lentexttol + 6 + sxl) * 0.5 * Math.Sin(ang1 * pi / 180));
            Vector2 fp19p = new Vector2(fp19.X + Math.Max(tol.Length, toh.Length) * 1.5 * 0.7 * Math.Cos(ang1 * pi / 180), fp19.Y + Math.Max(tol.Length, toh.Length) * 1.5 * 0.7 * Math.Sin(ang1 * pi / 180));
            Vector2 fp20 = new Vector2(fp21.X - (lentexttol - 4.5) * Math.Cos(ang1 * pi / 180), fp21.Y - (lentexttol - 4.5) * Math.Sin(ang1 * pi / 180));

            Vector2 fp17 = new Vector2(fp7p.X + jl * Math.Cos(ang3 * pi / 180), fp7p.Y + jl * Math.Sin(ang3 * pi / 180));


            Vector2 fp22 = new Vector2(fp17.X +
                lentexttol * 0.5 * 0.5 / distance1(fpl, fpr) * (fpl.X - fpr.X), fp17.Y + lentexttol * 0.5 * 0.5 / distance1(fpl, fpr) * (fpl.Y - fpr.Y));
            Vector2 fp23 = new Vector2(fp17.X + (lentexttol * 0.5 + 2 + sxl) * 0.5 / distance1(fpl, fpr) * (fpr.X - fpl.X), fp17.Y + (lentexttol * 0.5 + 2 + sxl) * 0.5 / distance1(fpl, fpr) * (fpr.Y - fpl.Y));
            Vector2 fp23p = new Vector2(fp17.X + (lentexttol - 1) * 0.5 / distance1(fpl, fpr) * (fpr.X - fpl.X), fp17.Y + (lentexttol - 1) * 0.5 / distance1(fpl, fpr) * (fpr.Y - fpl.Y));

            Vector2 fp24 = new Vector2(fp19.X + jl * Math.Cos(ang3 * pi / 180), fp19.Y + jl * Math.Sin(ang3 * pi / 180));
            Vector2 fp25 = new Vector2(fp23.X + jl * Math.Cos(ang3 * pi / 180), fp23.Y + jl * Math.Sin(ang3 * pi / 180));
            Vector2 fp26 = new Vector2(fp21p.X + jl * Math.Cos(ang3 * pi / 180), fp21p.Y + jl * Math.Sin(ang3 * pi / 180));

            if (lentexttol < lp3p4)
            {
                Text text1 = new Text(text, fp22, 3.5, angtext);
                //                    zhc = "context.fillText(\"" + text + "\"," + fp22.X + "," + fp22.Y + ");";
                //                    sw.WriteLine(zhc);


                text1.WidthFactor = 0.7;
                Text text2 = new Text(tol, fp23, 1.5, angtext);
                //                    zhc = "context.fillText(\"" + tol + "\"," + fp23.X + "," + fp23.Y + ");";
                //                    sw.WriteLine(zhc);


                text2.WidthFactor = 0.7;
                Text text3 = new Text(toh, fp25, 1.5, angtext);
                //                    zhc = "context.fillText(\"" + toh + "\"," + fp25.X + "," + fp25.Y + ");";
                //                    sw.WriteLine(zhc);


                text3.WidthFactor = 0.7;
                dxf1.AddEntity(new EntityObject[] { text1, text2, text3 });
                if (text.Contains("("))
                {
                    Text text4 = new Text(")", fp23p, 3.5, angtext);
                    //                        zhc = "context.fillText(\"" + ")" + "\"," + fp23p.X + "," + fp23p.Y + ");";
                    //                        sw.WriteLine(zhc);


                    text4.WidthFactor = 0.7;
                    dxf1.AddEntity(new EntityObject[] { text4 });
                }

                Solid sd1 = new Solid(fpl, fp9, fp10);

                Solid sd2 = new Solid(fpr, fp13, fp14);



                dxf1.AddEntity(new EntityObject[] { sd1, sd2 });
            }
            else
            {
                if (distance1(fpl, fp3) < 0.0001)
                {
                    Text text1 = new Text(text, fp18, 3.5, angtext);
                    //                       zhc = "context.fillText(\"" + text + "\"," + fp18.X + "," + fp18.Y + ");";
                    //                     sw.WriteLine(zhc);


                    text1.WidthFactor = 0.7;
                    Text text2 = new Text(tol, fp19, 1.5, angtext);
                    //                        zhc = "context.fillText(\"" + tol + "\"," + fp19.X + "," + fp19.Y + ");";
                    //                        sw.WriteLine(zhc);


                    text2.WidthFactor = 0.7;
                    Text text3 = new Text(toh, fp24, 1.5, angtext);
                    //                        zhc = "context.fillText(\"" + toh + "\"," + fp24.X + "," + fp24.Y + ");";
                    //                        sw.WriteLine(zhc);


                    text3.WidthFactor = 0.7;
                    Line linep = new Line(fpl, fp15);


                    Solid sd1 = new Solid(fpl, fp7, fp8);


                    Solid sd2 = new Solid(fpr, fp11, fp12);


                    Line linepp = new Line(fpr, new Vector2((fp16.X + fpr.X) / 2, (fp16.Y + fpr.Y) / 2));


                    dxf1.AddEntity(new EntityObject[] { text1, text2, text3, linep, sd1, sd2, linepp });
                    if (text.Contains("("))
                    {
                        Text text4 = new Text(")", fp19p, 3.5, angtext);


                        text4.WidthFactor = 0.7;
                        dxf1.AddEntity(new EntityObject[] { text4 });
                    }

                }
                else
                {
                    Text text1 = new Text(text, fp20, 3.5, angtext);
                    //                       zhc = "context.fillText(\"" + text + "\"," + fp20.X + "," + fp20.Y + ");";
                    //                       sw.WriteLine(zhc);


                    text1.WidthFactor = 0.7;
                    Text text2 = new Text(tol, fp21p, 1.5, angtext);
                    //                       zhc = "context.fillText(\"" + tol + "\"," + fp21p.X + "," + fp21p.Y + ");";
                    //                       sw.WriteLine(zhc);


                    text2.WidthFactor = 0.7;
                    Text text3 = new Text(toh, fp26, 1.5, angtext);
                    //                        zhc = "context.fillText(\"" + toh + "\"," + fp26.X + "," + fp26.Y + ");";
                    //                        sw.WriteLine(zhc);


                    text3.WidthFactor = 0.7;
                    Solid sd1 = new Solid(fpl, fp7, fp8);


                    Solid sd2 = new Solid(fpr, fp11, fp12);


                    Line linep = new Line(fpr, fp16);


                    Line linepp = new Line(fpl, new Vector2((fp15.X + fpl.X) / 2, (fp15.Y + fpl.Y) / 2));


                    dxf1.AddEntity(new EntityObject[] { text1, text2, text3, linep, linepp, sd1, sd2 });
                    if (text.Contains("("))
                    {
                        Text text4 = new Text(")", fp21pp, 3.5, angtext);
                        //                            zhc = "context.fillText(\"" + ")" + "\"," + fp21pp.X + "," + fp21pp.Y + ");";
                        //                            sw.WriteLine(zhc);


                        text4.WidthFactor = 0.7;
                        dxf1.AddEntity(new EntityObject[] { text4 });
                    }

                }
            }
            Line line1 = new Line(fp1, fp5);


            Line line2 = new Line(fp2, fp6);


            Line line3 = new Line(fp3, fp4);


            dxf1.AddEntity(new EntityObject[] { line1, line2, line3 });


        }
        public static void Standard16460_1(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, 36 * pi / 180, 37);
            Vector2 v3 = fun.Polar(v1, 148 * pi / 180, 36);
            Vector2 v4 = fun.Polar(v2, 90 * pi / 180, 18.5);
            Vector2 v6 = fun.Polar(v3, 87 * pi / 180, 21);
            Vector2 v5 = fun.Polar(v6, -35 * pi / 180, 36.3089);
            Vector2 v7 = fun.Polar(v6, -35 * pi / 180, 13.56);
            Vector2 v8 = fun.Polar(v7, -90 * pi / 180, 9);
            Vector2 v10 = fun.Polar(v5, 145 * pi / 180, 11.5);
            Vector2 v9 = fun.Polar(v10, -90 * pi / 180, 8);
            Vector2 v11 = fun.Polar(v10, 30 * pi / 180, 24.5);
            Vector2 v12 = fun.Polar(v7, 30 * pi / 180, 20.3841);
            Vector2 v13 = fun.Polar(v6, 30 * pi / 180, 33.9273);
            Vector2 v14 = fun.Polar(v4, 145 * pi / 180, 23.8461);
            Vector2 v15 = fun.Polar(v8, 30 * pi / 180, 20);
            Vector2 v16 = fun.Polar(v10, 30 * pi / 180, 13.05);
            Vector2 v17 = fun.Polar(v15, 78 * pi / 180, 25.3129);
            Vector2 v18 = fun.Polar(v17, 100 * pi / 180, 6.67);
            Vector2 v19 = fun.Polar(v18, 135* pi / 180, 6.5749);
            Vector2 v20 = fun.Polar(v19, 93* pi / 180, 3.9013);
            Vector2 v21 = fun.Polar(v15, 72 * pi / 180, 42.745);
            Vector2 v22 = fun.Polar(v15, 70 * pi / 180, 35.6276);
            Vector2 v23 = fun.Polar(v10, 30 * pi / 180, 19.9589);
            Vector2 v24 = fun.Polar(v15, 71 * pi / 180, 24.2153);
            Vector2 v25 = fun.Polar(v20, 146 * pi / 180, 4.1097);
            Vector2 v26 = fun.Polar(v25, 0, 19);
            Vector2 v27 = fun.Polar(v25, 90 * pi / 180, 9.5);
            Vector2 v28 = fun.Polar(v26, 90 * pi / 180, 9.5);
            Vector2 v29 = fun.Polar(v27, 0, 9.5);
            Vector2 v30 = fun.Polar(v29, -90 * pi / 180, 9.5);
            Vector2 v31 = fun.Polar(v30, 90 * pi / 180, 4.75);
            Vector2 v32 = fun.Polar(v31, 90 * pi / 180, 1.75);
            Vector2 v33 = fun.Polar(v11, 103 * pi / 180, 10.2741);
            Vector2 v34 = fun.Polar(v15, 83 * pi / 180, 17.2614);

            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes.Add(new LwPolylineVertex(v5));
            line1.Vertexes.Add(new LwPolylineVertex(v10));
            line1.Vertexes.Add(new LwPolylineVertex(v9));
            line1.Vertexes.Add(new LwPolylineVertex(v8));
            line1.Vertexes.Add(new LwPolylineVertex(v7));
            line1.Vertexes.Add(new LwPolylineVertex(v6));
            line1.Vertexes.Add(new LwPolylineVertex(v3));
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            Line line2 = new Line(v6, v13);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            Line line3 = new Line(v7, v12);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            Line line4 = new Line(v8, v15);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            Line line5 = new Line(v10, v11);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            Line line6 = new Line(v5, v4);
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            Line line7 = new Line(v1, v2);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            Line line8 = new Line(v4, v2);
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            Line line9 = new Line(v4, v14);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            Line line10 = new Line(v15, v16);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v15));
            line11.Vertexes.Add(new LwPolylineVertex(v17));
            line11.Vertexes[0].Bulge = Math.Tan(-31 * pi / 180 / 4);
            line11.Vertexes.Add(new LwPolylineVertex(v18));
            line11.Vertexes[1].Bulge = Math.Tan(75 * pi / 180 / 4);
            line11.Vertexes.Add(new LwPolylineVertex(v19));
            line11.Vertexes[2].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            LwPolyline line12 = new LwPolyline();
            line12.Vertexes.Add(new LwPolylineVertex(v15));
            line12.Vertexes.Add(new LwPolylineVertex(v24));
            line12.Vertexes[0].Bulge = Math.Tan(-18 * pi / 180 / 4);
            line12.Vertexes.Add(new LwPolylineVertex(v21));
            line12.Vertexes[1].Bulge = Math.Tan(28 * pi / 180 / 4);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            LwPolyline line13 = new LwPolyline();
            line13.Vertexes.Add(new LwPolylineVertex(v23));
            line13.Vertexes.Add(new LwPolylineVertex(v22));
            line13.Vertexes[0].Bulge = Math.Tan(7 * pi / 180 / 4);
            line13.Layer = contour;
            line13.Lineweight = Lineweight.W50;
            dxf.AddEntity(line13);
            LwPolyline line14 = new LwPolyline();
            line14.Vertexes.Add(new LwPolylineVertex(v11));
            line14.Vertexes.Add(new LwPolylineVertex(v33));
            line14.Vertexes[0].Bulge = Math.Tan(26 * pi / 180 / 4);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            LwPolyline line15 = new LwPolyline();
            line15.Vertexes.Add(new LwPolylineVertex(v34));
            line15.Vertexes.Add(new LwPolylineVertex(v20));
            line15.Vertexes[0].Bulge = Math.Tan(-7 * pi / 180 / 4);
            line15.Layer = contour;
            line15.Lineweight = Lineweight.W50;
            dxf.AddEntity(line15);
            Ellipse entity1 = new Ellipse
            {
                Center = new Vector3(v30.X, v30.Y, 0),
                MajorAxis = 9.5 * 2,
                MinorAxis = 3 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity1.Layer = contour;
            entity1.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity1);
            Ellipse entity2 = new Ellipse
            {
                Center = new Vector3(v31.X, v31.Y, 0),
                MajorAxis = 9.5 * 2,
                MinorAxis = 3 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity2.Layer = contour;
            entity2.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity2);
            Ellipse entity3 = new Ellipse
            {
                Center = new Vector3(v32.X, v32.Y, 0),
                MajorAxis = 9.5 * 2,
                MinorAxis = 3 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity3.Layer = contour;
            entity3.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity3);
            Line line16 = new Line(v27, v25);
            line16.Layer = contour;
            line16.Lineweight = Lineweight.W50;
            dxf.AddEntity(line16);
            Line line17 = new Line(v28, v26);
            line17.Layer = contour;
            line17.Lineweight = Lineweight.W50;
            dxf.AddEntity(line17);
            LwPolyline line18 = new LwPolyline();
            line18.Vertexes.Add(new LwPolylineVertex(v27));
            line18.Vertexes.Add(new LwPolylineVertex(v29));
            line18.Vertexes[0].Bulge = Math.Tan(-95 * pi / 180 / 4);
            line18.Vertexes.Add(new LwPolylineVertex(v28));
            line18.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            line18.Vertexes.Add(new LwPolylineVertex(v29));
            line18.Vertexes[2].Bulge = Math.Tan(95 * pi / 180 / 4);
            line18.Lineweight = Lineweight.W25;
            line18.Layer = additionalline;
            dxf.AddEntity(line18);

            dimrot1(dxf, v6, v8, 55, 20, "aₐ", "", "");
            dimrot1(dxf, v8, v9, 180, 20, "aᵣ=D", "", "");
            fun.jt(dxf, new Vector2(-1.5241, 70), 180, 5, 2, "");
            fun.jt(dxf, new Vector2(11.8188, 70), 0, 5, 2, "");
            Line line00 = new Line(new Vector2(-1.5241, 70), new Vector2(11.8188, 70));
            dxf.AddEntity(line00);
            fun.text(dxf, new Vector2(17, 71), 3, "φD");



            fun.jt(dxf, new Vector2(0, 75), 0, 5, 2, "");

            //填充
            LwPolyline hatchpoly1 = new LwPolyline();
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v29));
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v28));
            hatchpoly1.Vertexes[0].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v29));
            hatchpoly1.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly1.IsClosed = true;
            String[] htype1 = new String[100];
            Line[] hline1 = new Line[100];
            Arc[] harc1 = new Arc[100];
            int hnumst1 = hatchpoly1.Explode().Count;  //记录爆炸后，线段有多少
            for (int i = 0; i < hnumst1; i++)
            {
                htype1[i] = hatchpoly1.Explode()[i].Type.ToString();    //将所有的元素记录成一个数组
                if (htype1[i] == "Line")
                {
                    hline1[i] = (Line)hatchpoly1.Explode()[i];
                }
                if (htype1[i] == "Arc")
                {
                    harc1[i] = (Arc)hatchpoly1.Explode()[i];
                }
            }
            fun.hatchsub1(dxf, htype1, hnumst1, 45, 5, hline1, harc1, hatching);


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_2(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, 180 * pi / 180, 9);
            Vector2 v3 = fun.Polar(v1, 0 * pi / 180, 9);
            Vector2 v4 = fun.Polar(v1, -90 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, -90 * pi / 180, 2.5);
            Vector2 v6 = fun.Polar(v5, -90 * pi / 180, 3.5);
            Vector2 v7 = fun.Polar(v2, -90 * pi / 180, 7);
            Vector2 v8 = fun.Polar(v3, -90 * pi / 180, 7);
            Vector2 v9 = fun.Polar(v7, -31 * pi / 180, 3.6977);
            Vector2 v10 = fun.Polar(v9, -73 * pi / 180, 6.146);
            Vector2 v11 = fun.Polar(v9, -99 * pi / 180, 1.7203);
            Vector2 v12 = fun.Polar(v9, -78 * pi / 180, 7.2362);
            Vector2 v13 = fun.Polar(v9, -87 * pi / 180, 26.4772);
            Vector2 v14 = fun.Polar(v9, -34 * pi / 180, 7.1883);
            Vector2 v38 = fun.Polar(v9, -24 * pi / 180, 11.6024);
            Vector2 v15 = fun.Polar(v9, -41 * pi / 180, 13.5);
            Vector2 v16 = fun.Polar(v9, -80 * pi / 180, 22.0525);
            Vector2 v17 = fun.Polar(v9, -91 * pi / 180, 37.8817);
            Vector2 v18 = fun.Polar(v9, -68 * pi / 180, 20.2707);
            Vector2 v19 = fun.Polar(v9, 1 * pi / 180, 12.4751);
            Vector2 v20 = fun.Polar(v9, -42 * pi / 180, 15.0876);
            Vector2 v21 = fun.Polar(v9, -88 * pi / 180, 40);
            Vector2 v22 = fun.Polar(v9, -84 * pi / 180, 41.1618);
            Vector2 v23 = fun.Polar(v9, -66 * pi / 180, 25.9242);
            Vector2 v24 = fun.Polar(v9, -76 * pi / 180, 41.7856);
            Vector2 v25 = fun.Polar(v9, -79 * pi / 180, 41.1384);
            Vector2 v33 = fun.Polar(v9, -90.5 * pi / 180, 19.6446);
            Vector2 v26 = fun.Polar(v21, -152 * pi / 180, 22.5);
            Vector2 v27 = fun.Polar(v26, -33 * pi / 180, 3.5);
            Vector2 v28 = fun.Polar(v27, -90 * pi / 180, 9);
            Vector2 v29 = fun.Polar(v28, 145 * pi / 180, 17);
            Vector2 v30 = fun.Polar(v29, 90 * pi / 180, 32.3509);
            Vector2 v31 = fun.Polar(v26, 90 * pi / 180, 23.5);
            Vector2 v39 = fun.Polar(v31, 25 * pi / 180, 20.0949);
            Vector2 v32 = fun.Polar(v30, 26 * pi / 180, 33.4962);
            Vector2 v37 = fun.Polar(v28, 30 * pi / 180, 37.5);
            Vector2 v36 = fun.Polar(v37, 90 * pi / 180, 30);
            Vector2 v35 = fun.Polar(v36, 131 * pi / 180, 7.7136);
            Vector2 v34 = fun.Polar(v36, -154 * pi / 180, 5.9619);


            Ellipse entity1 = new Ellipse
            {
                Center = new Vector3(v4.X, v4.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity1.Layer = contour;
            entity1.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity1);
            Ellipse entity2 = new Ellipse
            {
                Center = new Vector3(v5.X, v5.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity2.Layer = contour;
            entity2.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity2);
            Ellipse entity3 = new Ellipse
            {
                Center = new Vector3(v6.X, v6.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity3.Layer = contour;
            entity3.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity3);
            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v2));
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes[0].Bulge = Math.Tan(-95 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v3));
            line1.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes[2].Bulge = Math.Tan(95 * pi / 180 / 4);
            line1.Lineweight = Lineweight.W25;
            line1.Layer = additionalline;
            dxf.AddEntity(line1);
            Line line2 = new Line(v2, v7);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            Line line3 = new Line(v3, v8);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v9));
            line4.Vertexes.Add(new LwPolylineVertex(v10));
            line4.Vertexes[0].Bulge = Math.Tan(71 * pi / 180 / 4);
            line4.Lineweight = Lineweight.W50;
            line4.Layer = contour;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v12));
            line5.Vertexes[0].Bulge = Math.Tan(-80 * pi / 180 / 4);
            line5.Vertexes.Add(new LwPolylineVertex(v13));
            line5.Vertexes[1].Bulge = Math.Tan(41 * pi / 180 / 4);
            line5.Lineweight = Lineweight.W50;
            line5.Layer = contour;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v33));
            line6.Vertexes.Add(new LwPolylineVertex(v14));
            line6.Vertexes[0].Bulge = Math.Tan(-25 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v38));
            line6.Vertexes[1].Bulge = Math.Tan(-143 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v15));
            line6.Vertexes[2].Bulge = Math.Tan(-42 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v16));
            line6.Vertexes[3].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v17));
            line6.Vertexes[4].Bulge = Math.Tan(33 * pi / 180 / 4);
            line6.Lineweight = Lineweight.W50;
            line6.Layer = contour;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v17));
            line7.Vertexes.Add(new LwPolylineVertex(v18));
            line7.Vertexes[0].Bulge = Math.Tan(-17 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v19));
            line7.Vertexes[1].Bulge = Math.Tan(30 * pi / 180 / 4);
            line7.Lineweight = Lineweight.W50;
            line7.Layer = contour;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v21));
            line8.Vertexes.Add(new LwPolylineVertex(v20));
            line8.Vertexes[1].Bulge = Math.Tan(53 * pi / 180 / 4);
            line8.Lineweight = Lineweight.W50;
            line8.Layer = contour;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v21));
            line9.Vertexes.Add(new LwPolylineVertex(v22));
            line9.Vertexes[0].Bulge = Math.Tan(61 * pi / 180 / 4);
            line9.Vertexes.Add(new LwPolylineVertex(v23));
            line9.Vertexes[1].Bulge = Math.Tan(24 * pi / 180 / 4);
            line9.Lineweight = Lineweight.W50;
            line9.Layer = contour;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v22));
            line10.Vertexes.Add(new LwPolylineVertex(v25));
            line10.Vertexes[0].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line10.Vertexes.Add(new LwPolylineVertex(v24));
            line10.Vertexes[1].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line10.Vertexes.Add(new LwPolylineVertex(v23));
            line10.Vertexes[2].Bulge = Math.Tan(27 * pi / 180 / 4);
            line10.Lineweight = Lineweight.W50;
            line10.Layer = contour;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v26));
            line11.Vertexes.Add(new LwPolylineVertex(v27));
            line11.Vertexes.Add(new LwPolylineVertex(v28));
            line11.Vertexes.Add(new LwPolylineVertex(v29));
            line11.Vertexes.Add(new LwPolylineVertex(v30));
            line11.Vertexes.Add(new LwPolylineVertex(v31));
            line11.Vertexes.Add(new LwPolylineVertex(v26));
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            Line line12 = new Line(v30, v32);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            Line line13 = new Line(v31, v39);
            line13.Layer = contour;
            line13.Lineweight = Lineweight.W50;
            dxf.AddEntity(line13);
            Line line14 = new Line(v26, v21);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(v27, v22);
            line15.Layer = contour;
            line15.Lineweight = Lineweight.W50;
            dxf.AddEntity(line15);
            Line line16 = new Line(v28, v37);
            line16.Layer = contour;
            line16.Lineweight = Lineweight.W50;
            dxf.AddEntity(line16);
            Line line17 = new Line(v37, v36);
            line17.Layer = contour;
            line17.Lineweight = Lineweight.W50;
            dxf.AddEntity(line17);
            Line line18 = new Line(v34, v36);
            line18.Layer = contour;
            line18.Lineweight = Lineweight.W50;
            dxf.AddEntity(line18);
            Line line19 = new Line(v36, v35);
            line19.Layer = contour;
            line19.Lineweight = Lineweight.W50;
            dxf.AddEntity(line19);

            Vector2 V1 = new Vector2(90, 0);
            Vector2 V2 = fun.Polar(V1, 180 * pi / 180, 9);
            Vector2 V3 = fun.Polar(V1, 0 * pi / 180, 9);
            Vector2 V4 = fun.Polar(V1, -90 * pi / 180, 1);
            Vector2 V5 = fun.Polar(V4, -90 * pi / 180, 2.5);
            Vector2 V6 = fun.Polar(V5, -90 * pi / 180, 3.5);
            Vector2 V7 = fun.Polar(V2, -90 * pi / 180, 7);
            Vector2 V8 = fun.Polar(V3, -90 * pi / 180, 7);
            Vector2 V9 = fun.Polar(V7, -31 * pi / 180, 3.6977);
            Vector2 V10 = fun.Polar(V9, -73 * pi / 180, 6.146);
            Vector2 V11 = fun.Polar(V9, -99 * pi / 180, 1.7203);
            Vector2 V12 = fun.Polar(V9, -78 * pi / 180, 7.2362);
            Vector2 V13 = fun.Polar(V9, -87 * pi / 180, 26.4772);
            Vector2 V14 = fun.Polar(V9, -34 * pi / 180, 7.1883);
            Vector2 V38 = fun.Polar(V9, -24 * pi / 180, 11.6024);
            Vector2 V15 = fun.Polar(V9, -41 * pi / 180, 13.5);
            Vector2 V16 = fun.Polar(V9, -80 * pi / 180, 22.0525);
            Vector2 V17 = fun.Polar(V9, -91 * pi / 180, 37.8817);
            Vector2 V18 = fun.Polar(V9, -68 * pi / 180, 20.2707);
            Vector2 V19 = fun.Polar(V9, 1 * pi / 180, 12.4751);
            Vector2 V20 = fun.Polar(V9, -42 * pi / 180, 15.0876);
            Vector2 V21 = fun.Polar(V9, -88 * pi / 180, 40);
            Vector2 V22 = fun.Polar(V9, -84 * pi / 180, 41.1618);
            Vector2 V23 = fun.Polar(V9, -66 * pi / 180, 25.9242);
            Vector2 V24 = fun.Polar(V9, -76 * pi / 180, 41.7856);
            Vector2 V25 = fun.Polar(V9, -79 * pi / 180, 41.1384);
            Vector2 V33 = fun.Polar(V9, -90.5 * pi / 180, 19.6446);
            Vector2 V26 = fun.Polar(V21, -152 * pi / 180, 22.5);
            Vector2 a1 = new Vector2(V11.X, V11.Y);
            Vector2 a2 = fun.Polar(a1, -155 * pi / 180, 23.5);
            Vector2 a3 = fun.Polar(a2, -90 * pi / 180, 35.5);
            Vector2 a5 = fun.Polar(a2, -41 * pi / 180, 19);
            Vector2 a4 = fun.Polar(a5, -90 * pi / 180, 33);
            Vector2 a6 = fun.Polar(a5, 21 * pi / 180, 6.5);
            Vector2 a7 = fun.Polar(a6, 137 * pi / 180, 3);
            Vector2 a8 = fun.Polar(a7, 27 * pi / 180, 3.4513);
            Vector2 a9 = fun.Polar(a7, 27 * pi / 180, 16.6183);
            Vector2 a10 = fun.Polar(a7, 27 * pi / 180, 31.6956);
            Vector2 a11 = fun.Polar(a10, 141 * pi / 180, 12.9408);
            Vector2 a12 = fun.Polar(a6, -90 * pi / 180, 23);
            Vector2 a13 = fun.Polar(a6, -90 * pi / 180, 20.2);
            Vector2 a14 = fun.Polar(a13, 28 * pi / 180, 29.5);
            Vector2 a15 = fun.Polar(a12, 26 * pi / 180, 31.9105);
            Vector2 a16 = fun.Polar(a4, 27 * pi / 180, 39);
            Vector2 a17 = fun.Polar(a13, 28 * pi / 180, 3.3812);
            Vector2 a18 = fun.Polar(a13, 28 * pi / 180, 13.8687);
            Vector2 a19 = fun.Polar(a12, 26 * pi / 180, 10.0191);
            Vector2 a20 = fun.Polar(a12, 26 * pi / 180, 12.9328);

            Ellipse entity4 = new Ellipse
            {
                Center = new Vector3(V4.X, V4.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity4.Layer = contour;
            entity4.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity4);
            Ellipse entity5 = new Ellipse
            {
                Center = new Vector3(V5.X, V5.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity5.Layer = contour;
            entity5.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity5);
            Ellipse entity6 = new Ellipse
            {
                Center = new Vector3(V6.X, V6.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity6.Layer = contour;
            entity6.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity6);
            LwPolyline line01 = new LwPolyline();
            line01.Vertexes.Add(new LwPolylineVertex(V2));
            line01.Vertexes.Add(new LwPolylineVertex(V1));
            line01.Vertexes[0].Bulge = Math.Tan(-95 * pi / 180 / 4);
            line01.Vertexes.Add(new LwPolylineVertex(V3));
            line01.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            line01.Vertexes.Add(new LwPolylineVertex(V1));
            line01.Vertexes[2].Bulge = Math.Tan(95 * pi / 180 / 4);
            line01.Lineweight = Lineweight.W25;
            line01.Layer = additionalline;
            dxf.AddEntity(line01);
            Line line02 = new Line(V2, V7);
            line02.Layer = contour;
            line02.Lineweight = Lineweight.W50;
            dxf.AddEntity(line02);
            Line line03 = new Line(V3, V8);
            line03.Layer = contour;
            line03.Lineweight = Lineweight.W50;
            dxf.AddEntity(line03);
            LwPolyline line04 = new LwPolyline();
            line04.Vertexes.Add(new LwPolylineVertex(V9));
            line04.Vertexes.Add(new LwPolylineVertex(V10));
            line04.Vertexes[0].Bulge = Math.Tan(71 * pi / 180 / 4);
            line04.Lineweight = Lineweight.W50;
            line04.Layer = contour;
            dxf.AddEntity(line04);
            LwPolyline line05 = new LwPolyline();
            line05.Vertexes.Add(new LwPolylineVertex(V11));
            line05.Vertexes.Add(new LwPolylineVertex(V12));
            line05.Vertexes[0].Bulge = Math.Tan(-80 * pi / 180 / 4);
            line05.Vertexes.Add(new LwPolylineVertex(V13));
            line05.Vertexes[1].Bulge = Math.Tan(41 * pi / 180 / 4);
            line05.Lineweight = Lineweight.W50;
            line05.Layer = contour;
            dxf.AddEntity(line05);
            LwPolyline line06 = new LwPolyline();
            line06.Vertexes.Add(new LwPolylineVertex(V33));
            line06.Vertexes.Add(new LwPolylineVertex(V14));
            line06.Vertexes[0].Bulge = Math.Tan(-25 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V38));
            line06.Vertexes[1].Bulge = Math.Tan(-143 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V15));
            line06.Vertexes[2].Bulge = Math.Tan(-42 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V16));
            line06.Vertexes[3].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V17));
            line06.Vertexes[4].Bulge = Math.Tan(33 * pi / 180 / 4);
            line06.Lineweight = Lineweight.W50;
            line06.Layer = contour;
            dxf.AddEntity(line06);
            LwPolyline line07 = new LwPolyline();
            line07.Vertexes.Add(new LwPolylineVertex(V17));
            line07.Vertexes.Add(new LwPolylineVertex(V18));
            line07.Vertexes[0].Bulge = Math.Tan(-17 * pi / 180 / 4);
            line07.Vertexes.Add(new LwPolylineVertex(V19));
            line07.Vertexes[1].Bulge = Math.Tan(30 * pi / 180 / 4);
            line07.Lineweight = Lineweight.W50;
            line07.Layer = contour;
            dxf.AddEntity(line07);
            LwPolyline line08 = new LwPolyline();
            line08.Vertexes.Add(new LwPolylineVertex(V17));
            line08.Vertexes.Add(new LwPolylineVertex(V21));
            line08.Vertexes.Add(new LwPolylineVertex(V20));
            line08.Vertexes[1].Bulge = Math.Tan(53 * pi / 180 / 4);
            line08.Lineweight = Lineweight.W50;
            line08.Layer = contour;
            dxf.AddEntity(line08);
            LwPolyline line09 = new LwPolyline();
            line09.Vertexes.Add(new LwPolylineVertex(V21));
            line09.Vertexes.Add(new LwPolylineVertex(V22));
            line09.Vertexes[0].Bulge = Math.Tan(61 * pi / 180 / 4);
            line09.Vertexes.Add(new LwPolylineVertex(V23));
            line09.Vertexes[1].Bulge = Math.Tan(24 * pi / 180 / 4);
            line09.Lineweight = Lineweight.W50;
            line09.Layer = contour;
            dxf.AddEntity(line09);
            LwPolyline line010 = new LwPolyline();
            line010.Vertexes.Add(new LwPolylineVertex(V22));
            line010.Vertexes.Add(new LwPolylineVertex(V25));
            line010.Vertexes[0].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line010.Vertexes.Add(new LwPolylineVertex(V24));
            line010.Vertexes[1].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line010.Vertexes.Add(new LwPolylineVertex(V23));
            line010.Vertexes[2].Bulge = Math.Tan(27 * pi / 180 / 4);
            line010.Lineweight = Lineweight.W50;
            line010.Layer = contour;
            dxf.AddEntity(line010);
            LwPolyline line011 = new LwPolyline();
            line011.Vertexes.Add(new LwPolylineVertex(a2));
            line011.Vertexes.Add(new LwPolylineVertex(a3));
            line011.Vertexes.Add(new LwPolylineVertex(a4));
            line011.Vertexes.Add(new LwPolylineVertex(a5));
            line011.Vertexes.Add(new LwPolylineVertex(a2));
            line011.Layer = contour;
            line011.Lineweight = Lineweight.W50;
            dxf.AddEntity(line011);
            LwPolyline line012 = new LwPolyline();
            line012.Vertexes.Add(new LwPolylineVertex(a5));
            line012.Vertexes.Add(new LwPolylineVertex(a6));
            line012.Vertexes.Add(new LwPolylineVertex(a7));
            line012.Vertexes.Add(new LwPolylineVertex(a8));
            line012.Layer = contour;
            line012.Lineweight = Lineweight.W50;
            dxf.AddEntity(line012);
            LwPolyline line013 = new LwPolyline();
            line013.Vertexes.Add(new LwPolylineVertex(a4));
            line013.Vertexes.Add(new LwPolylineVertex(a16));
            line013.Vertexes.Add(new LwPolylineVertex(a15));
            line013.Vertexes.Add(new LwPolylineVertex(a14));
            line013.Vertexes.Add(new LwPolylineVertex(a10));
            line013.Vertexes.Add(new LwPolylineVertex(a11));
            line013.Layer = contour;
            line013.Lineweight = Lineweight.W50;
            dxf.AddEntity(line013);
            Line line014 = new Line(a2, a1);
            line014.Layer = contour;
            line014.Lineweight = Lineweight.W50;
            dxf.AddEntity(line014);
            Line line015 = new Line(a9, a10);
            line015.Layer = contour;
            line015.Lineweight = Lineweight.W50;
            dxf.AddEntity(line015);
            Line line016 = new Line(a13, a17);
            line016.Layer = contour;
            line016.Lineweight = Lineweight.W50;
            dxf.AddEntity(line016);
            Line line017 = new Line(a12, a19);
            line017.Layer = contour;
            line017.Lineweight = Lineweight.W50;
            dxf.AddEntity(line017);
            Line line018 = new Line(a6, a12);
            line018.Layer = contour;
            line018.Lineweight = Lineweight.W50;
            dxf.AddEntity(line018);
            Line line019 = new Line(a18, a14);
            line019.Layer = contour;
            line019.Lineweight = Lineweight.W50;
            dxf.AddEntity(line019);
            Line line020 = new Line(a20, a15);
            line020.Layer = contour;
            line020.Lineweight = Lineweight.W50;
            dxf.AddEntity(line020);
            //填充
            LwPolyline hatchpoly1 = new LwPolyline();
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v1));
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v3));
            hatchpoly1.Vertexes[0].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v1));
            hatchpoly1.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly1.IsClosed = true;
            String[] htype1 = new String[100];
            Line[] hline1 = new Line[100];
            Arc[] harc1 = new Arc[100];
            int hnumst1 = hatchpoly1.Explode().Count;  //记录爆炸后，线段有多少
            for (int i = 0; i < hnumst1; i++)
            {
                htype1[i] = hatchpoly1.Explode()[i].Type.ToString();    //将所有的元素记录成一个数组
                if (htype1[i] == "Line")
                {
                    hline1[i] = (Line)hatchpoly1.Explode()[i];
                }
                if (htype1[i] == "Arc")
                {
                    harc1[i] = (Arc)hatchpoly1.Explode()[i];
                }
            }
            fun.hatchsub1(dxf, htype1, hnumst1, 45, 5, hline1, harc1, hatching);
            LwPolyline hatchpoly2 = new LwPolyline();
            hatchpoly2.Vertexes.Add(new LwPolylineVertex(V1));
            hatchpoly2.Vertexes.Add(new LwPolylineVertex(V3));
            hatchpoly2.Vertexes[0].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly2.Vertexes.Add(new LwPolylineVertex(V1));
            hatchpoly2.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly2.IsClosed = true;
            String[] htype2 = new String[100];
            Line[] hline2 = new Line[100];
            Arc[] harc2 = new Arc[100];
            int hnumst2 = hatchpoly2.Explode().Count;  //记录爆炸后，线段有多少
            for (int i = 0; i < hnumst2; i++)
            {
                htype2[i] = hatchpoly2.Explode()[i].Type.ToString();    //将所有的元素记录成一个数组
                if (htype2[i] == "Line")
                {
                    hline2[i] = (Line)hatchpoly2.Explode()[i];
                }
                if (htype2[i] == "Arc")
                {
                    harc2[i] = (Arc)hatchpoly2.Explode()[i];
                }
            }
            fun.hatchsub1(dxf, htype2, hnumst2, 45, 5, hline2, harc2, hatching);



            dimrot1(dxf, v30, v26, 55, 20, "aₐ", "", "");
            dimrot1(dxf, v27, v26, 118, 20, "ar", "", "");
            dimrot1(dxf, v17, fun.Polar(v17, 10 * pi / 180, 12.0734), 180, 20, "φD", "", "");
            dimrot1(dxf, a12, a20, 180, 20, "φD", "", "");
            dimrot1(dxf, a14, a15, -62, 15, "ar", "", "");
            dimrot1(dxf, a14, a10, -62, 20, "aa", "", "");





            fun.jt(dxf, new Vector2(-3, -7.8), 0, 5, 2, "");
            fun.jt(dxf, new Vector2(87, -7.8), 0, 5, 2, "");


            fun.text(dxf, new Vector2(-17, -88), 3, "a) 逆洗");
            fun.text(dxf, new Vector2(105-17, -88), 3, "b) 顺洗");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_3(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, 180 * pi / 180, 9);
            Vector2 v3 = fun.Polar(v1, 0 * pi / 180, 9);
            Vector2 v4 = fun.Polar(v1, -90 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, -90 * pi / 180, 2.5);
            Vector2 v6 = fun.Polar(v5, -90 * pi / 180, 3.5);
            Vector2 v7 = fun.Polar(v2, -90 * pi / 180, 7);
            Vector2 v8 = fun.Polar(v3, -90 * pi / 180, 7);
            Vector2 v9 = fun.Polar(v7, -31 * pi / 180, 3.6977);
            Vector2 v10 = fun.Polar(v9, -73 * pi / 180, 6.146);
            Vector2 v11 = fun.Polar(v9, -99 * pi / 180, 1.7203);
            Vector2 v12 = fun.Polar(v9, -78 * pi / 180, 7.2362);
            Vector2 v13 = fun.Polar(v9, -87 * pi / 180, 26.4772);
            Vector2 v14 = fun.Polar(v9, -34 * pi / 180, 7.1883);
            Vector2 v38 = fun.Polar(v9, -24 * pi / 180, 11.6024);
            Vector2 v15 = fun.Polar(v9, -41 * pi / 180, 13.5);
            Vector2 v16 = fun.Polar(v9, -80 * pi / 180, 22.0525);
            Vector2 v17 = fun.Polar(v9, -91 * pi / 180, 37.8817);
            Vector2 v18 = fun.Polar(v9, -68 * pi / 180, 20.2707);
            Vector2 v19 = fun.Polar(v9, 1 * pi / 180, 12.4751);
            Vector2 v20 = fun.Polar(v9, -42 * pi / 180, 15.0876);
            Vector2 v21 = fun.Polar(v9, -88 * pi / 180, 40);
            Vector2 v22 = fun.Polar(v9, -84 * pi / 180, 41.1618);
            Vector2 v23 = fun.Polar(v9, -66 * pi / 180, 25.9242);
            Vector2 v24 = fun.Polar(v9, -76 * pi / 180, 41.7856);
            Vector2 v25 = fun.Polar(v9, -79 * pi / 180, 41.1384);
            Vector2 v33 = fun.Polar(v9, -90.5 * pi / 180, 19.6446);
            Vector2 a1 = new Vector2(v17.X, v17.Y);
            Vector2 a2 = fun.Polar(a1, -147 * pi / 180, 22.5);
            Vector2 a3 = fun.Polar(a2, -30 * pi / 180, 8.5);
            Vector2 a4 = fun.Polar(a3, -90 * pi / 180, 6);
            Vector2 a5 = fun.Polar(a4, 152 * pi / 180, 18.6359);
            Vector2 a6 = fun.Polar(a5, 90 * pi / 180, 10.251);
            Vector2 a7 = fun.Polar(a2, 90 * pi / 180, 3.5);
            Vector2 a8 = fun.Polar(a7, 33 * pi / 180, 22.7012);
            Vector2 a9 = fun.Polar(a6, 33 * pi / 180, 34.511);
            Vector2 a10 = fun.Polar(a3, 33 * pi / 180, 25.7207);
            Vector2 a13 = fun.Polar(a4, 33 * pi / 180, 39);
            Vector2 a12 = fun.Polar(a13, 90 * pi / 180, 12);
            Vector2 a11 = fun.Polar(a12, -151 * pi / 180, 10.3566);
            Vector2 a14 = fun.Polar(a12, 151 * pi / 180, 10.9444);


            Ellipse entity1 = new Ellipse
            {
                Center = new Vector3(v4.X, v4.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity1.Layer = contour;
            entity1.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity1);
            Ellipse entity2 = new Ellipse
            {
                Center = new Vector3(v5.X, v5.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity2.Layer = contour;
            entity2.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity2);
            Ellipse entity3 = new Ellipse
            {
                Center = new Vector3(v6.X, v6.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity3.Layer = contour;
            entity3.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity3);
            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v2));
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes[0].Bulge = Math.Tan(-95 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v3));
            line1.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes[2].Bulge = Math.Tan(95 * pi / 180 / 4);
            line1.Lineweight = Lineweight.W25;
            line1.Layer = additionalline;
            dxf.AddEntity(line1);
            Line line2 = new Line(v2, v7);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            Line line3 = new Line(v3, v8);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v9));
            line4.Vertexes.Add(new LwPolylineVertex(v10));
            line4.Vertexes[0].Bulge = Math.Tan(71 * pi / 180 / 4);
            line4.Lineweight = Lineweight.W50;
            line4.Layer = contour;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v12));
            line5.Vertexes[0].Bulge = Math.Tan(-80 * pi / 180 / 4);
            line5.Vertexes.Add(new LwPolylineVertex(v13));
            line5.Vertexes[1].Bulge = Math.Tan(41 * pi / 180 / 4);
            line5.Lineweight = Lineweight.W50;
            line5.Layer = contour;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v33));
            line6.Vertexes.Add(new LwPolylineVertex(v14));
            line6.Vertexes[0].Bulge = Math.Tan(-25 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v38));
            line6.Vertexes[1].Bulge = Math.Tan(-143 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v15));
            line6.Vertexes[2].Bulge = Math.Tan(-42 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v16));
            line6.Vertexes[3].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v17));
            line6.Vertexes[4].Bulge = Math.Tan(33 * pi / 180 / 4);
            line6.Lineweight = Lineweight.W50;
            line6.Layer = contour;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v17));
            line7.Vertexes.Add(new LwPolylineVertex(v18));
            line7.Vertexes[0].Bulge = Math.Tan(-17 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v19));
            line7.Vertexes[1].Bulge = Math.Tan(30 * pi / 180 / 4);
            line7.Lineweight = Lineweight.W50;
            line7.Layer = contour;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v21));
            line8.Vertexes.Add(new LwPolylineVertex(v20));
            line8.Vertexes[1].Bulge = Math.Tan(53 * pi / 180 / 4);
            line8.Lineweight = Lineweight.W50;
            line8.Layer = contour;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v21));
            line9.Vertexes.Add(new LwPolylineVertex(v22));
            line9.Vertexes[0].Bulge = Math.Tan(61 * pi / 180 / 4);
            line9.Vertexes.Add(new LwPolylineVertex(v23));
            line9.Vertexes[1].Bulge = Math.Tan(24 * pi / 180 / 4);
            line9.Lineweight = Lineweight.W50;
            line9.Layer = contour;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v22));
            line10.Vertexes.Add(new LwPolylineVertex(v25));
            line10.Vertexes[0].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line10.Vertexes.Add(new LwPolylineVertex(v24));
            line10.Vertexes[1].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line10.Vertexes.Add(new LwPolylineVertex(v23));
            line10.Vertexes[2].Bulge = Math.Tan(27 * pi / 180 / 4);
            line10.Lineweight = Lineweight.W50;
            line10.Layer = contour;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(a2));
            line11.Vertexes.Add(new LwPolylineVertex(a3));
            line11.Vertexes.Add(new LwPolylineVertex(a4));
            line11.Vertexes.Add(new LwPolylineVertex(a5));
            line11.Vertexes.Add(new LwPolylineVertex(a6));
            line11.Vertexes.Add(new LwPolylineVertex(a7));
            line11.Vertexes.Add(new LwPolylineVertex(a2));
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            Line line12 = new Line(a6, a9);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            Line line13 = new Line(a7, a8);
            line13.Layer = contour;
            line13.Lineweight = Lineweight.W50;
            dxf.AddEntity(line13);
            Line line14 = new Line(a2, a1);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a3, a10);
            line15.Layer = contour;
            line15.Lineweight = Lineweight.W50;
            dxf.AddEntity(line15);
            Line line16 = new Line(a4, a13);
            line16.Layer = contour;
            line16.Lineweight = Lineweight.W50;
            dxf.AddEntity(line16);
            Line line17 = new Line(a13, a12);
            line17.Layer = contour;
            line17.Lineweight = Lineweight.W50;
            dxf.AddEntity(line17);
            Line line18 = new Line(a12, a14);
            line18.Layer = contour;
            line18.Lineweight = Lineweight.W50;
            dxf.AddEntity(line18);
            Line line19 = new Line(a12, a11);
            line19.Layer = contour;
            line19.Lineweight = Lineweight.W50;
            dxf.AddEntity(line19);

            Vector2 V1 = new Vector2(90, 0);
            Vector2 V2 = fun.Polar(V1, 180 * pi / 180, 9);
            Vector2 V3 = fun.Polar(V1, 0 * pi / 180, 9);
            Vector2 V4 = fun.Polar(V1, -90 * pi / 180, 1);
            Vector2 V5 = fun.Polar(V4, -90 * pi / 180, 2.5);
            Vector2 V6 = fun.Polar(V5, -90 * pi / 180, 3.5);
            Vector2 V7 = fun.Polar(V2, -90 * pi / 180, 7);
            Vector2 V8 = fun.Polar(V3, -90 * pi / 180, 7);
            Vector2 V9 = fun.Polar(V7, -31 * pi / 180, 3.6977);
            Vector2 V10 = fun.Polar(V9, -73 * pi / 180, 6.146);
            Vector2 V11 = fun.Polar(V9, -99 * pi / 180, 1.7203);
            Vector2 V12 = fun.Polar(V9, -78 * pi / 180, 7.2362);
            Vector2 V13 = fun.Polar(V9, -87 * pi / 180, 26.4772);
            Vector2 V14 = fun.Polar(V9, -34 * pi / 180, 7.1883);
            Vector2 V38 = fun.Polar(V9, -24 * pi / 180, 11.6024);
            Vector2 V15 = fun.Polar(V9, -41 * pi / 180, 13.5);
            Vector2 V16 = fun.Polar(V9, -80 * pi / 180, 22.0525);
            Vector2 V17 = fun.Polar(V9, -91 * pi / 180, 37.8817);
            Vector2 V18 = fun.Polar(V9, -68 * pi / 180, 20.2707);
            Vector2 V19 = fun.Polar(V9, 1 * pi / 180, 12.4751);
            Vector2 V20 = fun.Polar(V9, -42 * pi / 180, 15.0876);
            Vector2 V21 = fun.Polar(V9, -88 * pi / 180, 40);
            Vector2 V22 = fun.Polar(V9, -84 * pi / 180, 41.1618);
            Vector2 V23 = fun.Polar(V9, -66 * pi / 180, 25.9242);
            Vector2 V24 = fun.Polar(V9, -76 * pi / 180, 41.7856);
            Vector2 V25 = fun.Polar(V9, -79 * pi / 180, 41.1384);
            Vector2 V33 = fun.Polar(V9, -90.5 * pi / 180, 19.6446);
            Vector2 V26 = fun.Polar(V21, -152 * pi / 180, 22.5);
            Vector2 a15 = fun.Polar(V17, -43 * pi / 180, 2);
            Vector2 a16 = fun.Polar(a15, -152 * pi / 180, 9.5);
            Vector2 a17 = fun.Polar(a16, 146 * pi / 180, 19);
            Vector2 a18 = fun.Polar(a17, -90 * pi / 180, 10.5);
            Vector2 a19 = fun.Polar(a16, -90 * pi / 180, 10.5);
            Vector2 a20 = fun.Polar(a17, 28 * pi / 180, 26.4016);
            Vector2 a21 = fun.Polar(a19, 28 * pi / 180, 37.5);
            Vector2 a22 = fun.Polar(a21, 90 * pi / 180, 7.5);
            Vector2 a23 = fun.Polar(a22, -152 * pi / 180, 16.3397);
            Vector2 a24 = fun.Polar(a22, -152 * pi / 180, 28);
            Vector2 a25 = fun.Polar(a22, -152 * pi / 180, 25.2388);
            Vector2 a26 = fun.Polar(a22, 145 * pi / 180, 8);
            Vector2 a27 = fun.Polar(a26, -152 * pi / 180, 8.6077);
            Vector2 a29 = fun.Polar(a26, 90 * pi / 180, 3);
            Vector2 a28 = fun.Polar(a29, -151 * pi / 180, 9.0455);
            Vector2 a30 = fun.Polar(a29, 148 * pi / 180, 8.7839);

            Ellipse entity4 = new Ellipse
            {
                Center = new Vector3(V4.X, V4.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity4.Layer = contour;
            entity4.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity4);
            Ellipse entity5 = new Ellipse
            {
                Center = new Vector3(V5.X, V5.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity5.Layer = contour;
            entity5.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity5);
            Ellipse entity6 = new Ellipse
            {
                Center = new Vector3(V6.X, V6.Y, 0),
                MajorAxis = 9 * 2,
                MinorAxis = 2.5 * 2,
                StartAngle = 180,
                EndAngle = 0,
            };
            entity6.Layer = contour;
            entity6.Lineweight = Lineweight.W50;
            dxf.AddEntity(entity6);
            LwPolyline line01 = new LwPolyline();
            line01.Vertexes.Add(new LwPolylineVertex(V2));
            line01.Vertexes.Add(new LwPolylineVertex(V1));
            line01.Vertexes[0].Bulge = Math.Tan(-95 * pi / 180 / 4);
            line01.Vertexes.Add(new LwPolylineVertex(V3));
            line01.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            line01.Vertexes.Add(new LwPolylineVertex(V1));
            line01.Vertexes[2].Bulge = Math.Tan(95 * pi / 180 / 4);
            line01.Lineweight = Lineweight.W25;
            line01.Layer = additionalline;
            dxf.AddEntity(line01);
            Line line02 = new Line(V2, V7);
            line02.Layer = contour;
            line02.Lineweight = Lineweight.W50;
            dxf.AddEntity(line02);
            Line line03 = new Line(V3, V8);
            line03.Layer = contour;
            line03.Lineweight = Lineweight.W50;
            dxf.AddEntity(line03);
            LwPolyline line04 = new LwPolyline();
            line04.Vertexes.Add(new LwPolylineVertex(V9));
            line04.Vertexes.Add(new LwPolylineVertex(V10));
            line04.Vertexes[0].Bulge = Math.Tan(71 * pi / 180 / 4);
            line04.Lineweight = Lineweight.W50;
            line04.Layer = contour;
            dxf.AddEntity(line04);
            LwPolyline line05 = new LwPolyline();
            line05.Vertexes.Add(new LwPolylineVertex(V11));
            line05.Vertexes.Add(new LwPolylineVertex(V12));
            line05.Vertexes[0].Bulge = Math.Tan(-80 * pi / 180 / 4);
            line05.Vertexes.Add(new LwPolylineVertex(V13));
            line05.Vertexes[1].Bulge = Math.Tan(41 * pi / 180 / 4);
            line05.Lineweight = Lineweight.W50;
            line05.Layer = contour;
            dxf.AddEntity(line05);
            LwPolyline line06 = new LwPolyline();
            line06.Vertexes.Add(new LwPolylineVertex(V33));
            line06.Vertexes.Add(new LwPolylineVertex(V14));
            line06.Vertexes[0].Bulge = Math.Tan(-25 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V38));
            line06.Vertexes[1].Bulge = Math.Tan(-143 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V15));
            line06.Vertexes[2].Bulge = Math.Tan(-42 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V16));
            line06.Vertexes[3].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line06.Vertexes.Add(new LwPolylineVertex(V17));
            line06.Vertexes[4].Bulge = Math.Tan(33 * pi / 180 / 4);
            line06.Lineweight = Lineweight.W50;
            line06.Layer = contour;
            dxf.AddEntity(line06);
            LwPolyline line07 = new LwPolyline();
            line07.Vertexes.Add(new LwPolylineVertex(V17));
            line07.Vertexes.Add(new LwPolylineVertex(V18));
            line07.Vertexes[0].Bulge = Math.Tan(-17 * pi / 180 / 4);
            line07.Vertexes.Add(new LwPolylineVertex(V19));
            line07.Vertexes[1].Bulge = Math.Tan(30 * pi / 180 / 4);
            line07.Lineweight = Lineweight.W50;
            line07.Layer = contour;
            dxf.AddEntity(line07);
            LwPolyline line08 = new LwPolyline();
            line08.Vertexes.Add(new LwPolylineVertex(V17));
            line08.Vertexes.Add(new LwPolylineVertex(V21));
            line08.Vertexes.Add(new LwPolylineVertex(V20));
            line08.Vertexes[1].Bulge = Math.Tan(53 * pi / 180 / 4);
            line08.Lineweight = Lineweight.W50;
            line08.Layer = contour;
            dxf.AddEntity(line08);
            LwPolyline line09 = new LwPolyline();
            line09.Vertexes.Add(new LwPolylineVertex(V21));
            line09.Vertexes.Add(new LwPolylineVertex(V22));
            line09.Vertexes[0].Bulge = Math.Tan(61 * pi / 180 / 4);
            line09.Vertexes.Add(new LwPolylineVertex(V23));
            line09.Vertexes[1].Bulge = Math.Tan(24 * pi / 180 / 4);
            line09.Lineweight = Lineweight.W50;
            line09.Layer = contour;
            dxf.AddEntity(line09);
            LwPolyline line010 = new LwPolyline();
            line010.Vertexes.Add(new LwPolylineVertex(V22));
            line010.Vertexes.Add(new LwPolylineVertex(V25));
            line010.Vertexes[0].Bulge = Math.Tan(-6 * pi / 180 / 4);
            line010.Vertexes.Add(new LwPolylineVertex(V24));
            line010.Vertexes[1].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line010.Vertexes.Add(new LwPolylineVertex(V23));
            line010.Vertexes[2].Bulge = Math.Tan(27 * pi / 180 / 4);
            line010.Lineweight = Lineweight.W50;
            line010.Layer = contour;
            dxf.AddEntity(line010);
            LwPolyline line011 = new LwPolyline();
            line011.Vertexes.Add(new LwPolylineVertex(a16));
            line011.Vertexes.Add(new LwPolylineVertex(a17));
            line011.Vertexes.Add(new LwPolylineVertex(a18));
            line011.Vertexes.Add(new LwPolylineVertex(a19));
            line011.Vertexes.Add(new LwPolylineVertex(a16));
            line011.Layer = contour;
            line011.Lineweight = Lineweight.W50;
            dxf.AddEntity(line011);
            LwPolyline line012 = new LwPolyline();
            line012.Vertexes.Add(new LwPolylineVertex(a16));
            line012.Vertexes.Add(new LwPolylineVertex(a15));
            line012.Vertexes.Add(new LwPolylineVertex(a24));
            line012.Vertexes.Add(new LwPolylineVertex(a25));
            line012.Layer = contour;
            line012.Lineweight = Lineweight.W50;
            dxf.AddEntity(line012);
            LwPolyline line013 = new LwPolyline();
            line013.Vertexes.Add(new LwPolylineVertex(a19));
            line013.Vertexes.Add(new LwPolylineVertex(a21));
            line013.Vertexes.Add(new LwPolylineVertex(a22));
            line013.Vertexes.Add(new LwPolylineVertex(a26));
            line013.Vertexes.Add(new LwPolylineVertex(a29));
            line013.Vertexes.Add(new LwPolylineVertex(a30));
            line013.Layer = contour;
            line013.Lineweight = Lineweight.W50;
            dxf.AddEntity(line013);
            Line line014 = new Line(a17, a20);
            line014.Layer = contour;
            line014.Lineweight = Lineweight.W50;
            dxf.AddEntity(line014);
            Line line015 = new Line(a23, a22);
            line015.Layer = contour;
            line015.Lineweight = Lineweight.W50;
            dxf.AddEntity(line015);
            Line line016 = new Line(a27, a26);
            line016.Layer = contour;
            line016.Lineweight = Lineweight.W50;
            dxf.AddEntity(line016);
            Line line017 = new Line(a28, a29);
            line017.Layer = contour;
            line017.Lineweight = Lineweight.W50;
            dxf.AddEntity(line017);
            //填充
            LwPolyline hatchpoly1 = new LwPolyline();
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v1));
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v3));
            hatchpoly1.Vertexes[0].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly1.Vertexes.Add(new LwPolylineVertex(v1));
            hatchpoly1.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly1.IsClosed = true;
            String[] htype1 = new String[100];
            Line[] hline1 = new Line[100];
            Arc[] harc1 = new Arc[100];
            int hnumst1 = hatchpoly1.Explode().Count;  //记录爆炸后，线段有多少
            for (int i = 0; i < hnumst1; i++)
            {
                htype1[i] = hatchpoly1.Explode()[i].Type.ToString();    //将所有的元素记录成一个数组
                if (htype1[i] == "Line")
                {
                    hline1[i] = (Line)hatchpoly1.Explode()[i];
                }
                if (htype1[i] == "Arc")
                {
                    harc1[i] = (Arc)hatchpoly1.Explode()[i];
                }
            }
            fun.hatchsub1(dxf, htype1, hnumst1, 45, 5, hline1, harc1, hatching);
            LwPolyline hatchpoly2 = new LwPolyline();
            hatchpoly2.Vertexes.Add(new LwPolylineVertex(V1));
            hatchpoly2.Vertexes.Add(new LwPolylineVertex(V3));
            hatchpoly2.Vertexes[0].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly2.Vertexes.Add(new LwPolylineVertex(V1));
            hatchpoly2.Vertexes[1].Bulge = Math.Tan(95 * pi / 180 / 4);
            hatchpoly2.IsClosed = true;
            String[] htype2 = new String[100];
            Line[] hline2 = new Line[100];
            Arc[] harc2 = new Arc[100];
            int hnumst2 = hatchpoly2.Explode().Count;  //记录爆炸后，线段有多少
            for (int i = 0; i < hnumst2; i++)
            {
                htype2[i] = hatchpoly2.Explode()[i].Type.ToString();    //将所有的元素记录成一个数组
                if (htype2[i] == "Line")
                {
                    hline2[i] = (Line)hatchpoly2.Explode()[i];
                }
                if (htype2[i] == "Arc")
                {
                    harc2[i] = (Arc)hatchpoly2.Explode()[i];
                }
            }
            fun.hatchsub1(dxf, htype2, hnumst2, 45, 5, hline2, harc2, hatching);



            dimrot1(dxf, a7, a2, 123, 20, "aₐ", "", "");
            dimrot1(dxf, a2, a3, 180, 20, "ar", "", "");
            dimrot1(dxf, a1, a11, 180, 20, "φD", "", "");
            dimrot1(dxf, V17, a23, 180, 20, "φD", "", "");
            dimrot1(dxf, a22, a26, -62, 15, "ar", "", "");
            dimrot1(dxf, a26, a29, -62, 20, "aa", "", "");





            fun.jt(dxf, new Vector2(-3, -7.8), 0, 5, 2, "");
            fun.jt(dxf, new Vector2(87, -7.8), 0, 5, 2, "");


            fun.text(dxf, new Vector2(-17, -88), 3, "a) 逆洗");
            fun.text(dxf, new Vector2(105 - 17, -88), 3, "b) 顺洗");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_4(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, 90 * pi / 180, 47.7266);
            Vector2 v3 = fun.Polar(v2, 161 * pi / 180, 34.8936);
            Vector2 v4 = fun.Polar(v1, 163 * pi / 180, 34.5);
            Vector2 v5 = fun.Polar(v1, 90 * pi / 180, 24.5);
            Vector2 v6 = fun.Polar(v4, 90 * pi / 180, 24.5);
            Vector2 v7 = fun.Polar(v4, 90 * pi / 180, 36);
            Vector2 v8 = fun.Polar(v1, 90 * pi / 180, 35.38);
            Vector2 v9 = fun.Polar(v1, 33 * pi / 180, 20.5);
            Vector2 v10 = fun.Polar(v2, 34 * pi / 180, 17.4836);
            Vector2 v11 = fun.Polar(v3, 28 * pi / 180, 26);
            Vector2 v12 = fun.Polar(v11, -22 * pi / 180, 11.29);
            Vector2 v13 = fun.Polar(v12, -16 * pi / 180, 10.5);
            Vector2 v14 = fun.Polar(v13, -79 * pi / 180, 24.23);
            Vector2 v15 = fun.Polar(v14, -85 * pi / 180, 13.673);
            Vector2 v16 = fun.Polar(v1, 4 * pi / 180, 71.83);
            Vector2 v17 = fun.Polar(v16, 90 * pi / 180, 49);
            Vector2 v18 = fun.Polar(v17, 161 * pi / 180, 17.5);
            Vector2 v19 = fun.Polar(v16, 161 * pi / 180, 17.5);
            Vector2 v20 = fun.Polar(v16, 90 * pi / 180, 12.5);
            Vector2 v21 = fun.Polar(v17, 161 * pi / 180, 15.5);
            Vector2 v22 = fun.Polar(v20, 161 * pi / 180, 15.5);
            Vector2 v23 = fun.Polar(v17, 161 * pi / 180, 8.75);
            Vector2 v24 = fun.Polar(v23, 90 * pi / 180, 5.45);
            Vector2 v25 = fun.Polar(v23, 90 * pi / 180, 49);
            Vector2 v26 = fun.Polar(v18, 30 * pi / 180, 23);
            Vector2 v27 = fun.Polar(v17, 30 * pi / 180, 21.87);
            Vector2 v28 = fun.Polar(v16, 30 * pi / 180, 20.5435);
            Vector2 v29 = fun.Polar(v26, -18 * pi / 180, 7.1289);
            Vector2 v30 = fun.Polar(v29, -10 * pi / 180, 6.5391);
            Vector2 v31 = fun.Polar(v30, -70 * pi / 180, 9.8);
            Vector2 v32 = fun.Polar(v31, -102 * pi / 180, 12.78);
            Vector2 v33 = fun.Polar(v32, -85 * pi / 180, 12.32);
            Vector2 v34 = fun.Polar(v33, -97 * pi / 180, 9.06);
            Vector2 v35 = fun.Polar(v16, 1 * pi / 180, 78.79);
            Vector2 v36 = fun.Polar(v35, 90 * pi / 180, 47);
            Vector2 v37 = fun.Polar(v36, 163 * pi / 180, 33.5);
            Vector2 v38 = fun.Polar(v35, 163 * pi / 180, 33.5);
            Vector2 v39 = fun.Polar(v35, 90 * pi / 180, 23.5);
            Vector2 v40 = fun.Polar(v36, 163 * pi / 180, 32);
            Vector2 v41 = fun.Polar(v39, 163 * pi / 180, 32);
            Vector2 v42 = fun.Polar(v35, 90 * pi / 180, 35.5);
            Vector2 v43 = fun.Polar(v42, 163 * pi / 180, 39);
            Vector2 v44 = fun.Polar(v37, 35 * pi / 180, 21);
            Vector2 v45 = fun.Polar(v36, 35 * pi / 180, 20.6379);
            Vector2 v46 = fun.Polar(v35, 35 * pi / 180, 21);
            Vector2 v47 = fun.Polar(v44, 4 * pi / 180, 10.64);
            Vector2 v48 = fun.Polar(v47, -28 * pi / 180, 7.92);
            Vector2 v49 = fun.Polar(v48, -19 * pi / 180, 10.77);
            Vector2 v50 = fun.Polar(v49, -52 * pi / 180, 9.2);
            Vector2 v51 = fun.Polar(v50, -100 * pi / 180, 12.6259);
            Vector2 v52 = fun.Polar(v51, -83 * pi / 180, 12);
            Vector2 v53 = fun.Polar(v52, -95 * pi / 180, 10.49);
            Vector2 v54 = fun.Polar(v1, 114 * pi / 180, 53);
            Vector2 v55 = fun.Polar(v54, 103 * pi / 180, 32);
            Vector2 v56 = fun.Polar(v55, 0 * pi / 180, 26);
            Vector2 v57 = fun.Polar(v19, 82 * pi / 180, 40.5);
            Vector2 v58 = fun.Polar(v57, 104 * pi / 180, 30);
            Vector2 v59 = fun.Polar(v58, 0 * pi / 180, 28);
            Vector2 v60 = fun.Polar(v35, 114 * pi / 180, 52);
            Vector2 v61 = fun.Polar(v60, 104 * pi / 180, 31);
            Vector2 v62 = fun.Polar(v61, 0 * pi / 180, 24);



            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v9));
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes.Add(new LwPolylineVertex(v2));
            line1.Vertexes.Add(new LwPolylineVertex(v3));
            line1.Vertexes.Add(new LwPolylineVertex(v4));
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            Line line2 = new Line(v3, v11);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            Line line3 = new Line(v2, v10);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            Line line4 = new Line(v6, v5);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v16));
            line5.Vertexes.Add(new LwPolylineVertex(v17));
            line5.Vertexes.Add(new LwPolylineVertex(v18));
            line5.Vertexes.Add(new LwPolylineVertex(v19));
            line5.Vertexes.Add(new LwPolylineVertex(v16));
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            Line line6 = new Line(v21, v22);
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            Line line7 = new Line(v22, v20);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            Line line8 = new Line(v18, v26);
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            Line line9 = new Line(v17, v27);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            Line line10 = new Line(v16, v28);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v38));
            line11.Vertexes.Add(new LwPolylineVertex(v37));
            line11.Vertexes.Add(new LwPolylineVertex(v36));
            line11.Vertexes.Add(new LwPolylineVertex(v35));
            line11.Vertexes.Add(new LwPolylineVertex(v38));
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            Line line12 = new Line(v40, v41);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            Line line13 = new Line(v41, v39);
            line13.Layer = contour;
            line13.Lineweight = Lineweight.W50;
            dxf.AddEntity(line13);
            Line line14 = new Line(v37, v44);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(v36, v45);
            line15.Layer = contour;
            line15.Lineweight = Lineweight.W50;
            dxf.AddEntity(line15);
            Line line16 = new Line(v35, v46);
            line16.Layer = contour;
            line16.Lineweight = Lineweight.W50;
            dxf.AddEntity(line16);

            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(v11.X,v11.Y, 0),
                new Vector3(v12.X,v12.Y, 0),
                new Vector3(v13.X,v13.Y, 0),
                new Vector3(v14.X,v14.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v9.X,v9.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {

                new Vector3(v26.X,v26.Y, 0),
                new Vector3(v29.X,v29.Y, 0),
                new Vector3(v30.X,v30.Y, 0),
                new Vector3(v27.X,v27.Y, 0),
                new Vector3(v31.X,v31.Y, 0),
                new Vector3(v32.X,v32.Y, 0),
                new Vector3(v33.X,v33.Y, 0),
                new Vector3(v34.X,v34.Y, 0),
                new Vector3(v28.X,v28.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            List<Vector3> points3 = new List<Vector3>
           {

                new Vector3(v44.X,v44.Y, 0),
                new Vector3(v47.X,v47.Y, 0),
                new Vector3(v48.X,v48.Y, 0),
                new Vector3(v49.X,v49.Y, 0),
                new Vector3(v50.X,v50.Y, 0),
                new Vector3(v51.X,v51.Y, 0),
                new Vector3(v52.X,v52.Y, 0),
                new Vector3(v53.X,v53.Y, 0),
                new Vector3(v46.X,v46.Y, 0),
            };

            Spline spline3 = new Spline(points3);
            spline3.Layer = contour;
            DxfDocument doc3 = new DxfDocument();
            dxf.AddEntity(spline3);



            dimrot1(dxf, v7, v2, -108, 55, "=", "", "");
            dimrot1(dxf, v7, v5, -108, 55, "=", "", "");
            dimrot1(dxf, v22, v24, 180, 55, "z", "", "");
            dimrot1(dxf, v20, v24, 180, 55, "z", "", "");
            dimrot1(dxf, v36, v43, -107, 55, "=", "", "");
            dimrot1(dxf, v39, v43, -107, 55, "=", "", "");



            Line line17 = new Line(v54, v55);
            dxf.AddEntity(line17);
            Line line18 = new Line(v55, v56);
            dxf.AddEntity(line18);
            Line line19 = new Line(v57, v58);
            dxf.AddEntity(line19);
            Line line20 = new Line(v58, v59);
            dxf.AddEntity(line20);
            Line line21 = new Line(v60, v61);
            dxf.AddEntity(line21);
            Line line22 = new Line(v61, v62);
            dxf.AddEntity(line22);


            fun.text(dxf, new Vector2(-11, 81), 2, "试验区");
            fun.text(dxf, new Vector2(73, 81), 2, "试验区");
            fun.text(dxf, new Vector2(137.5, 84.5), 2, "试验区");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_5(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 5);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 130);
            Vector2 v3 = fun.Polar(v0, 0 * pi / 180, 8);
            Vector2 v4 = new Vector2(v3.X + 2.5, v3.Y - 2.5);
            Vector2 v5 = new Vector2(-v3.X, v3.Y);
            Vector2 v6 = new Vector2(-v4.X, v4.Y);
            Vector2 v7 = fun.Polar(v6, -90 * pi / 180, 22);
            Vector2 v8 = fun.Polar(v7, -45 * pi / 180, 2.5);
            Vector2 v10 = fun.Polar(v7, -90 * pi / 180, 15);
            Vector2 v9 = fun.Polar(v10, 45 * pi / 180, 2.5);
            Vector2 v11 = fun.Polar(v6, -90 * pi / 180, 63);
            Vector2 v12 = fun.Polar(v4, -90 * pi / 180, 63);
            Vector2 v13 = fun.Polar(v11, -37 * pi / 180, 2.5);
            Vector2 v14 = new Vector2(-v13.X, v13.Y);
            Vector2 v15 = fun.Polar(v11, -90 * pi / 180, 13.5);
            Vector2 v16 = fun.Polar(v15, 37 * pi / 180, 2.5);
            Vector2 v17 = fun.Polar(v11, -90 * pi / 180, 5.15);
            Vector2 v18 = fun.Polar(v17, -17 * pi / 180, 3.2);
            Vector2 v19 = fun.Polar(v18, -71 * pi / 180, 4.95);
            Vector2 v20 = fun.Polar(v19, -102 * pi / 180, 8.3806);
            Vector2 v21 = fun.Polar(v15, -90 * pi / 180, 4);
            Vector2 v22 = fun.Polar(v12, -90 * pi / 180, 8.46);
            Vector2 v23 = fun.Polar(v22, 141 * pi / 180, 6.25);
            Vector2 v24 = fun.Polar(v23, -170 * pi / 180, 4.1);
            Vector2 v25 = fun.Polar(v24, -103.2 * pi / 180, 37.7268);
            Vector2 v29 = new Vector2(v14.X, v15.Y);
            Vector2 v26 = fun.Polar(v0, -90 * pi / 180, 93.4481);
            Vector2 v27 = fun.Polar(v21, -90 * pi / 180, 37);
            Vector2 v28 = fun.Polar(v0, -90 * pi / 180, 100.0542);
            Vector2 v30 = fun.Polar(v0, -90 * pi / 180, 119.092);
            Vector2 v37 = fun.Polar(v30, 77.1 * pi / 180, 41.6294);
            Vector2 v31 = fun.Polar(v30, 60 * pi / 180, 15.7307);
            Vector2 v32 = fun.Polar(v12, -90 * pi / 180, 54.5);
            Vector2 v33 = fun.Polar(v32, 180 * pi / 180, 6.26);
            Vector2 v34 = fun.Polar(v30, 0 * pi / 180, 3.25);
            Vector2 v35 = new Vector2(-v34.X, v34.Y);
            Vector2 v36 = new Vector2(-v33.X, v33.Y);


            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v20));
            line1.Vertexes.Add(new LwPolylineVertex(v21));
            line1.Vertexes[0].Bulge = Math.Tan(-63 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v10));
            line1.Vertexes.Add(new LwPolylineVertex(v9));
            line1.Vertexes.Add(new LwPolylineVertex(v8));
            line1.Vertexes.Add(new LwPolylineVertex(v7));
            line1.Vertexes.Add(new LwPolylineVertex(v6));
            line1.Vertexes.Add(new LwPolylineVertex(v5));
            line1.Vertexes.Add(new LwPolylineVertex(v3));
            line1.Vertexes.Add(new LwPolylineVertex(v4));
            line1.Vertexes.Add(new LwPolylineVertex(v22));
            line1.Vertexes.Add(new LwPolylineVertex(v26));
            line1.Vertexes[10].Bulge = Math.Tan(-17 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v27));
            line1.Vertexes[11].Bulge = Math.Tan(22 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v36));
            line1.Vertexes[12].Bulge = Math.Tan(-83 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v35));
            line1.Vertexes[13].Bulge = Math.Tan(-82 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v34));
            line1.Vertexes.Add(new LwPolylineVertex(v33));
            line1.Vertexes[15].Bulge = Math.Tan(-82 * pi / 180 / 4);
            line1.Vertexes.Add(new LwPolylineVertex(v32));
            line1.Vertexes.Add(new LwPolylineVertex(v31));
            line1.Vertexes[17].Bulge = Math.Tan(17 * pi / 180 / 4);
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v17));
            line2.Vertexes.Add(new LwPolylineVertex(v18));
            line2.Vertexes[0].Bulge = Math.Tan(-19 * pi / 180 / 4);
            line2.Vertexes.Add(new LwPolylineVertex(v19));
            line2.Vertexes[1].Bulge = Math.Tan(-91 * pi / 180 / 4);
            line2.Vertexes.Add(new LwPolylineVertex(v20));
            line2.Vertexes[2].Bulge = Math.Tan(45 * pi / 180 / 4);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2); 
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v22));
            line3.Vertexes.Add(new LwPolylineVertex(v23));
            line3.Vertexes[0].Bulge = Math.Tan(21 * pi / 180 / 4);
            line3.Vertexes.Add(new LwPolylineVertex(v24));
            line3.Vertexes[1].Bulge = Math.Tan(67 * pi / 180 / 4);
            line3.Vertexes.Add(new LwPolylineVertex(v25));
            line3.Vertexes[2].Bulge = Math.Tan(70 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v22));
            line4.Vertexes.Add(new LwPolylineVertex(v28));
            line4.Vertexes[0].Bulge = Math.Tan(-17 * pi / 180 / 4);
            line4.Vertexes.Add(new LwPolylineVertex(v27));
            line4.Vertexes[1].Bulge = Math.Tan(5 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v37));
            line5.Vertexes.Add(new LwPolylineVertex(v30));
            line5.Vertexes[0].Bulge = Math.Tan(-54 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v31));
            line6.Vertexes.Add(new LwPolylineVertex(v34));
            line6.Vertexes[0].Bulge = Math.Tan(-40 * pi / 180 / 4);
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v31));
            line7.Vertexes.Add(new LwPolylineVertex(v33));
            line7.Vertexes[0].Bulge = Math.Tan(-54 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            Line line8 = new Line(v1, v2);
            line8.Layer = centre;
            line8.Lineweight = Lineweight.W25;
            line8.Linetype = Linetype.DashDot;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v11));
            line9.Vertexes.Add(new LwPolylineVertex(v13));
            line9.Vertexes.Add(new LwPolylineVertex(v16));
            line9.Vertexes.Add(new LwPolylineVertex(v15));
            line9.Layer = refin;
            line9.Lineweight = Lineweight.W35;
            line9.Linetype = Linetype.Dashed;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v12));
            line10.Vertexes.Add(new LwPolylineVertex(v14));
            line10.Vertexes.Add(new LwPolylineVertex(v29));
            line10.Layer = refin;
            line10.Lineweight = Lineweight.W35;
            line10.Linetype = Linetype.Dashed;
            dxf.AddEntity(line10);
            Line line11 = new Line(v27, v36);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            Line line12 = new Line(v11, v12);
            line12.Layer = refin;
            line12.Lineweight = Lineweight.W35;
            line12.Linetype = Linetype.Dashed;
            dxf.AddEntity(line12);
            Line line13 = new Line(v15, v29);
            line13.Layer = refin;
            line13.Lineweight = Lineweight.W35;
            line13.Linetype = Linetype.Dashed;
            dxf.AddEntity(line13);
            Line line00 = new Line(v6, v4);
            line00.Layer = contour;
            line00.Lineweight = Lineweight.W50;
            dxf.AddEntity(line00);
            dimrot1(dxf, v6, v4, 0, 20, "φ25h6", "", "");
            dimrot1(dxf, v27, v32, 180, 20, "φ25js14", "", "");
            dimrot1(dxf, v15, v32, -90, 20, "45", "", "");
            dimrot1(dxf, v32, v3, -90, 25, "121", "", "");


            fun.text(dxf, new Vector2(20, -130), 3, "齿 数");
            fun.text(dxf, new Vector2(20, -134), 3, "Z = 4");

            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_6(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 5);
            Vector2 v2 = fun.Polar(v0, -90 * pi / 180, 125);
            Vector2 v3 = fun.Polar(v0, 0 * pi / 180, 8);
            Vector2 v4 = fun.Polar(v0, 180 * pi / 180, 6.25);
            Vector2 v5 = new Vector2(v3.X + 2.5, v3.Y - 2.5);
            Vector2 v6 = new Vector2(v4.X - 2.5, v4.Y - 2.5);
            Vector2 v7 = fun.Polar(v6, -90 * pi / 180, 11.23);
            Vector2 v8 = fun.Polar(v7, -135 * pi / 180, 2.5);
            Vector2 v9 = fun.Polar(v8, -90 * pi / 180, 7.12);
            Vector2 v10 = fun.Polar(v9, -45 * pi / 180, 2.5);
            Vector2 v11 = fun.Polar(v10, -90 * pi / 180, 11.46);
            Vector2 v12 = fun.Polar(v11, -135 * pi / 180, 2.5);
            Vector2 v14 = fun.Polar(v5, -90 * pi / 180, 63);
            Vector2 v13 = new Vector2(-v14.X, v14.Y);
            Vector2 v15 = fun.Polar(v13, -27 * pi / 180, 14.59);
            Vector2 v16 = fun.Polar(v15, -75 * pi / 180, 7.11);
            Vector2 v17 = fun.Polar(v13, -90 * pi / 180, 54);
            Vector2 v18 = fun.Polar(v13, -33.5 * pi / 180, 3.4449);
            Vector2 v19 = fun.Polar(v13, -86 * pi / 180, 38.6228);
            Vector2 v20 = fun.Polar(v14, -132 * pi / 180, 3);
            Vector2 v21 = fun.Polar(v16, -12 * pi / 180, 3.16);
            Vector2 v22 = fun.Polar(v21, -56 * pi / 180, 4.04);
            Vector2 v23 = fun.Polar(v17, 15 * pi / 180, 14.42);
            Vector2 v24 = fun.Polar(v20, -90 * pi / 180, 12.6472);
            Vector2 v26 = fun.Polar(v14, -90 * pi / 180, 54.5);
            Vector2 v25 = fun.Polar(v26, 97 * pi / 180, 16.9967);
            Vector2 v28 = fun.Polar(v26, 180 * pi / 180, 8.9);
            Vector2 v27 = fun.Polar(v17, -2 * pi / 180, 7.18);


            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v4));
            line1.Vertexes.Add(new LwPolylineVertex(v6));
            line1.Vertexes.Add(new LwPolylineVertex(v7));
            line1.Vertexes.Add(new LwPolylineVertex(v8));
            line1.Vertexes.Add(new LwPolylineVertex(v9));
            line1.Vertexes.Add(new LwPolylineVertex(v10));
            line1.Vertexes.Add(new LwPolylineVertex(v11));
            line1.Vertexes.Add(new LwPolylineVertex(v12));
            line1.Vertexes.Add(new LwPolylineVertex(v13));
            line1.Vertexes.Add(new LwPolylineVertex(v14));
            line1.Vertexes.Add(new LwPolylineVertex(v5));
            line1.Vertexes.Add(new LwPolylineVertex(v3));
            line1.Vertexes.Add(new LwPolylineVertex(v4));
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v13));
            line2.Vertexes.Add(new LwPolylineVertex(v15));
            line2.Vertexes[0].Bulge = Math.Tan(17 * pi / 180 / 4);
            line2.Vertexes.Add(new LwPolylineVertex(v16));
            line2.Vertexes[1].Bulge = Math.Tan(-123 * pi / 180 / 4);
            line2.Vertexes.Add(new LwPolylineVertex(v17));
            line2.Vertexes[2].Bulge = Math.Tan(32 * pi / 180 / 4);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v18));
            line3.Vertexes.Add(new LwPolylineVertex(v19));
            line3.Vertexes[0].Bulge = Math.Tan(34 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v16));
            line4.Vertexes.Add(new LwPolylineVertex(v21));
            line4.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line4.Vertexes.Add(new LwPolylineVertex(v22));
            line4.Vertexes[1].Bulge = Math.Tan(-62 * pi / 180 / 4);
            line4.Vertexes.Add(new LwPolylineVertex(v23));
            line4.Vertexes[2].Bulge = Math.Tan(-36 * pi / 180 / 4);
            line4.Vertexes.Add(new LwPolylineVertex(v17));
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v14));
            line5.Vertexes.Add(new LwPolylineVertex(v20));
            line5.Vertexes[0].Bulge = Math.Tan(66 * pi / 180 / 4);
            line5.Vertexes.Add(new LwPolylineVertex(v24));
            line5.Vertexes.Add(new LwPolylineVertex(v17));
            line5.Vertexes[2].Bulge = Math.Tan(30 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v17));
            line6.Vertexes.Add(new LwPolylineVertex(v27));
            line6.Vertexes.Add(new LwPolylineVertex(v28));
            line6.Vertexes[1].Bulge = Math.Tan(-73 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v26));
            line6.Vertexes.Add(new LwPolylineVertex(v25));
            line6.Vertexes[3].Bulge = Math.Tan(15 * pi / 180 / 4);
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            Line line7 = new Line(v1, v2);
            line7.Layer = centre;
            line7.Lineweight = Lineweight.W25;
            line7.Linetype = Linetype.DashDot;
            dxf.AddEntity(line7);
            Line line00 = new Line(v5, v6);
            line00.Layer = contour;
            line00.Lineweight = Lineweight.W50;
            dxf.AddEntity(line00);







            dimrot1(dxf, v8, v5, 0, 30, "φ25h6", "", "");
            dimrot1(dxf, v17, v26, 180, 20, "φ25e8", "", "");
            dimrot1(dxf, v21, v26, -90, 10, "45", "", "");
            dimrot1(dxf, v3, v26, -90, 25, "121", "", "");


            fun.text(dxf, new Vector2(20, -130), 3, "齿 数");
            fun.text(dxf, new Vector2(20, -134), 3, "Z = 2");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_7(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, 180 * pi / 180, 14.7092);
            Vector2 v34 = fun.Polar(v1, -130 * pi / 180, 2.75);
            Vector2 v3 = fun.Polar(v34, -162 * pi / 180, 12.975);
            Vector2 v4 = fun.Polar(v1, -142 * pi / 180, 12);
            Vector2 v5 = fun.Polar(v1, 175 * pi / 180, 14);
            Vector2 v6 = fun.Polar(v5, 180 * pi / 180, 4.75);
            Vector2 v7 = fun.Polar(v6, -165 * pi / 180, 4.6);
            Vector2 v8 = fun.Polar(v7, -158 * pi / 180, 17);
            Vector2 v9 = fun.Polar(v7, 177 * pi / 180, 28.5);
            Vector2 v10 = fun.Polar(v8, -99 * pi / 180, 10);
            Vector2 v11 = fun.Polar(v7, -120 * pi / 180, 17);
            Vector2 v12 = fun.Polar(v6, -120 * pi / 180, 18);
            Vector2 v13 = fun.Polar(v5, -122 * pi / 180, 17);
            Vector2 v14 = fun.Polar(v9, -94 * pi / 180, 9.8855);
            Vector2 v15 = fun.Polar(v14, -65 * pi / 180, 9.1736);
            Vector2 v16 = fun.Polar(v13, 4 * pi / 180, 2.6463);
            Vector2 v17 = fun.Polar(v1, 5 * pi / 180, 18.365);
            Vector2 v18 = fun.Polar(v17, -14 * pi / 180, 5);
            Vector2 v19 = fun.Polar(v18, -26 * pi / 180, 9.5);
            Vector2 v20 = fun.Polar(v19, -68 * pi / 180, 2.75);
            Vector2 v21 = fun.Polar(v20, -50 * pi / 180, 9);
            Vector2 v22 = fun.Polar(v18, -90 * pi / 180, 15.5);
            Vector2 v23 = fun.Polar(v17, -125 * pi / 180, 13);
            Vector2 v24 = fun.Polar(v23, 15 * pi / 180, 8.6156);
            Vector2 v25 = fun.Polar(v17, -69 * pi / 180, 6.181);
            Vector2 v26 = fun.Polar(v17, 9 * pi / 180, 86.8976);
            Vector2 v27 = fun.Polar(v26, -152 * pi / 180, 33);
            Vector2 v28 = fun.Polar(v26, -29 * pi / 180, 32);
            Vector2 v29 = fun.Polar(v26, -5 * pi / 180, 4.7768);
            Vector2 v30 = fun.Polar(v29, -35 * pi / 180, 10.5);
            Vector2 v31 = fun.Polar(v30, -49 * pi / 180, 19);
            Vector2 v32 = fun.Polar(v26, -82 * pi / 180, 15);
            Vector2 v33 = fun.Polar(v26, -108 * pi / 180, 24);


            LwPolyline line1 = new LwPolyline();
            line1.Vertexes.Add(new LwPolylineVertex(v1));
            line1.Vertexes.Add(new LwPolylineVertex(v2));
            line1.Vertexes.Add(new LwPolylineVertex(v4));
            line1.Vertexes[1].Bulge = Math.Tan(138 * pi / 180 / 4);
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            Line line2 = new Line(v34, v3);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            Line line3 = new Line(v5, v13);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            Line line4 = new Line(v6, v12);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            Line line5 = new Line(v7, v11);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            Line line6 = new Line(v5, v6);
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            Line line7 = new Line(v6, v7);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            Line line8 = new Line(v7, v8);
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            Line line9 = new Line(v8, v10);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            Line line10 = new Line(v7, v9);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(v9.X,v9.Y, 0),
                new Vector3(v14.X,v14.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v10.X,v10.Y, 0),
                new Vector3(v11.X,v11.Y, 0),
                new Vector3(v12.X,v12.Y, 0),
                new Vector3(v13.X,v13.Y, 0),
                new Vector3(v16.X,v16.Y, 0),
                new Vector3(v4.X,v4.Y, 0),
                new Vector3(v34.X,v34.Y, 0),
                new Vector3(v1.X,v1.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v23));
            line11.Vertexes.Add(new LwPolylineVertex(v24));
            line11.Vertexes.Add(new LwPolylineVertex(v25));
            line11.Vertexes[1].Bulge = Math.Tan(96 * pi / 180 / 4);
            line11.Vertexes.Add(new LwPolylineVertex(v17));
            line11.Vertexes.Add(new LwPolylineVertex(v18));
            line11.Vertexes.Add(new LwPolylineVertex(v19));
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            Line line12 = new Line(v18, v22);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            List<Vector3> points2 = new List<Vector3>
           {

                new Vector3(v23.X,v23.Y, 0),
                new Vector3(v22.X,v22.Y, 0),
                new Vector3(v21.X,v21.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            LwPolyline Arc13 = new LwPolyline();
            Arc13.Vertexes.Add(new LwPolylineVertex(v27));
            Arc13.Vertexes.Add(new LwPolylineVertex(v28));
            Arc13.Vertexes[0].Bulge = Math.Tan(-114 * pi / 180 / 4);
            Arc13.Layer = centre;
            Arc13.Lineweight = Lineweight.W25;
            Arc13.Linetype = Linetype.DashDot;
            dxf.AddEntity(Arc13);
            LwPolyline line14 = new LwPolyline();
            line14.Vertexes.Add(new LwPolylineVertex(v33));
            line14.Vertexes.Add(new LwPolylineVertex(v32));
            line14.Vertexes[0].Bulge = Math.Tan(110 * pi / 180 / 4);
            line14.Vertexes.Add(new LwPolylineVertex(v26));
            line14.Vertexes.Add(new LwPolylineVertex(v29));
            line14.Vertexes.Add(new LwPolylineVertex(v30));
            line14.Vertexes.Add(new LwPolylineVertex(v31));
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
               
            dimrot1(dxf, v26, fun.Polar (v26,-90*pi/180,50), 90, 40, "φD", "", "");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_8(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, 70 * pi / 180, 4.5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 66.4 * pi / 180, 42.5604);
            Vector2 v12 = fun.Polar(v8, 74.5 * pi / 180, 32.4943);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);

            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[0].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[0].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);




            Vector2 a1 = fun.Polar(v9, 80 * pi / 180, 4.2438);
            Vector2 a2 = fun.Polar(a1, -92 * pi / 180, 32.3744);
            Vector2 a3 = fun.Polar(a2, 61 * pi / 180, 9);
            Vector2 a6 = fun.Polar(a2, -156 * pi / 180, 9);
            Vector2 a4 = fun.Polar(a3, -90 * pi / 180, 8.28);
            Vector2 a5 = fun.Polar(a6, -8 * pi / 180, 8.3413);

            Circle circle00 = new Circle(a1, 9);
            circle00.Layer = contour;
            circle00.Lineweight = Lineweight.W50;
            dxf.AddEntity(circle00); 
            Circle circle1 = new Circle(a2, 9);
            circle1.Layer = contour;
            circle1.Lineweight = Lineweight.W50;
            dxf.AddEntity(circle1);
            LwPolyline line00 = new LwPolyline();
            line00.Vertexes.Add(new LwPolylineVertex(a3));
            line00.Vertexes.Add(new LwPolylineVertex(a4));
            line00.Vertexes.Add(new LwPolylineVertex(a5));
            line00.Vertexes[1].Bulge = Math.Tan(-96 * pi / 180 / 4);
            line00.Vertexes.Add(new LwPolylineVertex(a6));
            line00.Layer = contour;
            line00.Lineweight = Lineweight.W50;
            dxf.AddEntity(line00);



            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            fun.jt(dxf, fun.Polar(v6, 63.3 * pi / 180, 31.39), 0, 10, 2, "部位3");
            fun.jt(dxf, v10, -45, 10, 2, "部位2");
            fun.jt(dxf, v9, -90, 10, 2, "部位1");
            fun.text(dxf, new Vector2(14, -79), 2, "或");
            fun.jt(dxf, a4, 0, 10, 2, "部位2");
            fun.jt(dxf, a5, -90, 10, 2, "部位1");




            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_9(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, 70 * pi / 180, 4.5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 66.4 * pi / 180, 42.5604);
            Vector2 v12 = fun.Polar(v8, 74.5 * pi / 180, 32.4943);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);

            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);



            Vector2 a1 = fun.Polar(v9, -2 * pi / 180, 15.5);
            Vector2 a2 = fun.Polar(a1, 71 * pi / 180, 31.5);
            Vector2 a3 = fun.Polar(a2, -54 * pi / 180, 29);
            Vector2 a4 = fun.Polar(a1, 71 * pi / 180, 26.5);
            Vector2 a5 = fun.Polar(a4, 5 * pi / 180, 1.24);
            Vector2 a6 = fun.Polar(a5, -32 * pi / 180, 2.01);
            Vector2 a7 = fun.Polar(a6, -11 * pi / 180, 2.7);
            Vector2 a8 = fun.Polar(a7, -27 * pi / 180, 3.73);
            Vector2 a9 = fun.Polar(a1, 21 * pi / 180, 4.22);
            Vector2 a10 = fun.Polar(a9, 2 * pi / 180, 5.35);
            Vector2 a11 = fun.Polar(a10, 16 * pi / 180, 9.2);
            Vector2 a12 = fun.Polar(a11, 1 * pi / 180, 5.5);

            Line line12 = new Line(a1, a4);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            LwPolyline Arc13 = new LwPolyline();
            Arc13.Vertexes.Add(new LwPolylineVertex(a8));
            Arc13.Vertexes.Add(new LwPolylineVertex(a3));
            Arc13.Vertexes[0].Bulge = Math.Tan(-13 * pi / 180 / 4);
            Arc13.Lineweight = Lineweight.W50;
            Arc13.Layer = contour;
            dxf.AddEntity(Arc13);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a1.X,a1.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a3.X,a3.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a4, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            LwPolyline Arc14 = new LwPolyline();
            Arc14.Vertexes.Add(new LwPolylineVertex(a2));
            Arc14.Vertexes.Add(new LwPolylineVertex(a8));
            Arc14.Vertexes[0].Bulge = Math.Tan(-7 * pi / 180 / 4);
            Arc14.Layer = centre;
            Arc14.Lineweight = Lineweight.W25;
            Arc14.Linetype = Linetype.DashDot;
            dxf.AddEntity(Arc14);


            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 19.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            Line line15 = new Line(fun.Polar(v3, 82 * pi / 180, 29), fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 21));
            dxf.AddEntity(line15);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 18.5), -121, 7.5, 1, "");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_10(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, 70 * pi / 180, 4.5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 66.4 * pi / 180, 42.5604);
            Vector2 v12 = fun.Polar(v8, 74.5 * pi / 180, 32.4943);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);

            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);



            Vector2 a1 = fun.Polar(v9, -2 * pi / 180, 15.5);
            Vector2 a2 = fun.Polar(a1, 71 * pi / 180, 31.5);
            Vector2 a3 = fun.Polar(a2, -54 * pi / 180, 29);
            Vector2 a4 = fun.Polar(a1, 71 * pi / 180, 26.5);
            Vector2 a5 = fun.Polar(a4, 40 * pi / 180, 2.04);
            Vector2 a6 = fun.Polar(a5, -53 * pi / 180, 2.88);
            Vector2 a7 = fun.Polar(a6, -10 * pi / 180, 1.66);
            Vector2 a01 = fun.Polar(a7, -56 * pi / 180, 2);
            Vector2 a02 = fun.Polar(a01, -22 * pi / 180, 1.53);
            Vector2 a03 = fun.Polar(a02, -48 * pi / 180, 1.64);
            Vector2 a04 = fun.Polar(a03, -29 * pi / 180, 3.2);
            Vector2 a8 = fun.Polar(a04, -27 * pi / 180, 3.73);
            Vector2 a9 = fun.Polar(a1, 21 * pi / 180, 4.22);
            Vector2 a10 = fun.Polar(a9, 2 * pi / 180, 5.35);
            Vector2 a11 = fun.Polar(a10, 16 * pi / 180, 9.2);
            Vector2 a12 = fun.Polar(a11, 1 * pi / 180, 5.5);

            Line line12 = new Line(a1, a4);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            LwPolyline Arc13 = new LwPolyline();
            Arc13.Vertexes.Add(new LwPolylineVertex(a8));
            Arc13.Vertexes.Add(new LwPolylineVertex(a3));
            Arc13.Lineweight = Lineweight.W50;
            Arc13.Layer = contour;
            dxf.AddEntity(Arc13);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a01.X,a01.Y, 0),
                new Vector3(a02.X,a02.Y, 0),
                new Vector3(a03.X,a03.Y, 0),
                new Vector3(a04.X,a04.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a1.X,a1.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a3.X,a3.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a4, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            LwPolyline Arc14 = new LwPolyline();
            Arc14.Vertexes.Add(new LwPolylineVertex(a2));
            Arc14.Vertexes.Add(new LwPolylineVertex(a8));
            Arc14.Layer = centre;
            Arc14.Lineweight = Lineweight.W25;
            Arc14.Linetype = Linetype.DashDot;
            dxf.AddEntity(Arc14);


            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 19.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            Line line15 = new Line(fun.Polar(v3, 82 * pi / 180, 29), fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 21));
            dxf.AddEntity(line15);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 18.5), -121, 7.5, 1, "");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_11(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, 70 * pi / 180, 4.5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 66.4 * pi / 180, 42.5604);
            Vector2 v12 = fun.Polar(v8, 74.5 * pi / 180, 32.4943);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);



            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v9, -2 * pi / 180, 15.5);
            Vector2 a2 = fun.Polar(a1, 71 * pi / 180, 31.5);
            Vector2 a3 = fun.Polar(a2, -54 * pi / 180, 29);
            Vector2 a4 = fun.Polar(a1, 71 * pi / 180, 26.5);
            Vector2 a5 = fun.Polar(a4, 40 * pi / 180, 2.04);
            Vector2 a6 = fun.Polar(a5, -53 * pi / 180, 2.88);
            Vector2 a7 = fun.Polar(a6, -10 * pi / 180, 1.66);
            Vector2 a01 = fun.Polar(a7, -56 * pi / 180, 2);
            Vector2 a02 = fun.Polar(a01, -22 * pi / 180, 1.53);
            Vector2 a03 = fun.Polar(a02, -48 * pi / 180, 1.64);
            Vector2 a04 = fun.Polar(a03, -29 * pi / 180, 3.2);
            Vector2 a8 = fun.Polar(a04, -27 * pi / 180, 3.73);
            Vector2 a9 = fun.Polar(a1, 21 * pi / 180, 4.22);
            Vector2 a10 = fun.Polar(a9, 2 * pi / 180, 5.35);
            Vector2 a11 = fun.Polar(a10, 16 * pi / 180, 9.2);
            Vector2 a12 = fun.Polar(a11, 1 * pi / 180, 5.5);

            Line line12 = new Line(a1, a4);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            LwPolyline Arc13 = new LwPolyline();
            Arc13.Vertexes.Add(new LwPolylineVertex(a8));
            Arc13.Vertexes.Add(new LwPolylineVertex(a3));
            Arc13.Lineweight = Lineweight.W50;
            Arc13.Layer = contour;
            dxf.AddEntity(Arc13);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a01.X,a01.Y, 0),
                new Vector3(a02.X,a02.Y, 0),
                new Vector3(a03.X,a03.Y, 0),
                new Vector3(a04.X,a04.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a1.X,a1.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a3.X,a3.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a4, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            LwPolyline Arc14 = new LwPolyline();
            Arc14.Vertexes.Add(new LwPolylineVertex(a2));
            Arc14.Vertexes.Add(new LwPolylineVertex(a8));
            Arc14.Layer = centre;
            Arc14.Lineweight = Lineweight.W25;
            Arc14.Linetype = Linetype.DashDot;
            dxf.AddEntity(Arc14);
 
               
            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 37), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 37), -31 * pi / 180, 29.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 85 * pi / 180, 31.8648), 90, 30, "aa", "", "");
            Line line15 = new Line(fun.Polar(v3, 82 * pi / 180, 37), fun.Polar(fun.Polar(v3, 82 * pi / 180, 37), -31 * pi / 180, 30));
            dxf.AddEntity(line15);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 37), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 37), -31 * pi / 180, 26.5), -121, 7.5, 1, "");






            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_12(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v2, 30 * pi / 180, 45.6);
            Vector2 a2 = fun.Polar(a1, 16 * pi / 180, 8);
            Vector2 a3 = fun.Polar(a2, -23 * pi / 180, 3.4419);
            Vector2 a4 = fun.Polar(a3, 4 * pi / 180, 3.5433);
            Vector2 a5 = fun.Polar(a4, -39 * pi / 180, 0.64);
            Vector2 a6 = fun.Polar(a5, 53 * pi / 180, 1.546);
            Vector2 a7 = fun.Polar(a6, 22 * pi / 180, 2.1124);
            Vector2 a8 = fun.Polar(a7, 22 * pi / 180, 3.7479);
            Vector2 a9 = fun.Polar(a2, 16 * pi / 180, 16);
            Vector2 a10 = fun.Polar(a1, 16 * pi / 180, 27);
            Vector2 a11 = fun.Polar(a10, -95 * pi / 180, 14.5);
            Vector2 a12 = fun.Polar(a11, -105 * pi / 180, 14);
            Vector2 a13 = fun.Polar(a12, 151 * pi / 180, 4.2615);
            Vector2 a14 = fun.Polar(a13, 140 * pi / 180, 4.1467);
            Vector2 a15 = fun.Polar(a14, 144 * pi / 180, 6.1234);
            Vector2 a16 = fun.Polar(a15, 125 * pi / 180, 6.1921);
            Vector2 a17 = fun.Polar(a16, 139 * pi / 180, 5.4795);

            Line line12 = new Line(a1, a2);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            LwPolyline Arc13 = new LwPolyline();
            Arc13.Vertexes.Add(new LwPolylineVertex(a9));
            Arc13.Vertexes.Add(new LwPolylineVertex(a10));
            Arc13.Lineweight = Lineweight.W50;
            Arc13.Layer = contour;
            dxf.AddEntity(Arc13);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a2.X,a2.Y, 0),
                new Vector3(a3.X,a3.Y, 0),
                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a13.X,a13.Y, 0),
                new Vector3(a14.X,a14.Y, 0),
                new Vector3(a15.X,a15.Y, 0),
                new Vector3(a16.X,a16.Y, 0),
                new Vector3(a17.X,a17.Y, 0),
                new Vector3(a1.X,a1.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a2, a9);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            Line line14 = new Line(a10, a11);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a11, a12);
            line15.Layer = contour;
            line15.Lineweight = Lineweight.W50;
            dxf.AddEntity(line15);



            fun.text(dxf, new Vector2(55, -28), 2, "A-A");
            dimrot1(dxf, v16, fun.Polar(v16, 85 * pi / 180, 31.8648), 90, 30, "aa", "", "");
            Line line16 = new Line(fun.Polar(v2, 50 * pi / 180, 20), fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 19));
            dxf.AddEntity(line16);
            fun.jt(dxf, fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 1.3), -78, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 17.7), -78, 7.5, 1, "");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 0.3), -78 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 18.7), -78 * pi / 180, 7.5), 2, "A");





            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_13(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v2, 30 * pi / 180, 45.6);
            Vector2 a2 = fun.Polar(a1, 16 * pi / 180, 8);
            Vector2 a3 = fun.Polar(a1, 16 * pi / 180, 27);
            Vector2 a4 = fun.Polar(a3, -95 * pi / 180, 4);
            Vector2 a5 = fun.Polar(a4, -95 * pi / 180, 14.5);
            Vector2 a6 = fun.Polar(a5, -105 * pi / 180, 14);
            Vector2 a7 = fun.Polar(a2, 0 * pi / 180, 3.7157);
            Vector2 a8 = fun.Polar(a7, 8 * pi / 180, 7.4082);
            Vector2 a9 = fun.Polar(a8, 10 * pi / 180, 6.065);
            Vector2 a13 = fun.Polar(a6, 151 * pi / 180, 4.2615);
            Vector2 a14 = fun.Polar(a13, 140 * pi / 180, 4.1467);
            Vector2 a15 = fun.Polar(a14, 144 * pi / 180, 6.1234);
            Vector2 a16 = fun.Polar(a15, 125 * pi / 180, 6.1921);
            Vector2 a17 = fun.Polar(a16, 139 * pi / 180, 5.4795);

            Line line12 = new Line(a1, a2);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a2.X,a2.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a4.X,a4.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a13.X,a13.Y, 0),
                new Vector3(a14.X,a14.Y, 0),
                new Vector3(a15.X,a15.Y, 0),
                new Vector3(a16.X,a16.Y, 0),
                new Vector3(a17.X,a17.Y, 0),
                new Vector3(a1.X,a1.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a2, a3);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            Line line14 = new Line(a4, a5);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a5, a6);
            line15.Layer = contour;
            line15.Lineweight = Lineweight.W50;
            dxf.AddEntity(line15);
            Line line16 = new Line(a3, a4);
            line16.Layer = centre;
            line16.Lineweight = Lineweight.W25;
            line16.Linetype = Linetype.DashDot;
            dxf.AddEntity(line16);



            fun.text(dxf, new Vector2(55, -28), 2, "A-A");
            dimrot1(dxf, v16, fun.Polar(v16, 85 * pi / 180, 31.8648), 90, 30, "aa", "", "");
            Line line17 = new Line(fun.Polar(v2, 50 * pi / 180, 20), fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 19));
            dxf.AddEntity(line17);
            fun.jt(dxf, fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 1.3), -78, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 17.7), -78, 7.5, 1, "");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 0.3), -78 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 18.7), -78 * pi / 180, 7.5), 2, "A");





            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_14(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 1);
            Vector2 v5 = fun.Polar(v4, 70 * pi / 180, 4.5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 66.4 * pi / 180, 42.5604);
            Vector2 v12 = fun.Polar(v8, 74.5 * pi / 180, 32.4943);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);

            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);



            Vector2 a1 = fun.Polar(v9, -2 * pi / 180, 15.5);
            Vector2 a2 = fun.Polar(a1, 71 * pi / 180, 31.5);
            Vector2 a3 = fun.Polar(a2, -54 * pi / 180, 29);
            Vector2 a4 = fun.Polar(a1, 71 * pi / 180, 26.5);
            Vector2 a5 = fun.Polar(a4, 5 * pi / 180, 1.24);
            Vector2 a6 = fun.Polar(a5, -32 * pi / 180, 2.01);
            Vector2 a7 = fun.Polar(a6, -11 * pi / 180, 2.7);
            Vector2 a8 = fun.Polar(a7, -27 * pi / 180, 3.73);
            Vector2 a9 = fun.Polar(a1, 21 * pi / 180, 4.22);
            Vector2 a10 = fun.Polar(a9, 2 * pi / 180, 5.35);
            Vector2 a11 = fun.Polar(a10, 16 * pi / 180, 9.2);
            Vector2 a12 = fun.Polar(a11, 1 * pi / 180, 5.5);

            Line line12 = new Line(a1, a4);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            LwPolyline Arc13 = new LwPolyline();
            Arc13.Vertexes.Add(new LwPolylineVertex(a8));
            Arc13.Vertexes.Add(new LwPolylineVertex(a3));
            Arc13.Vertexes[0].Bulge = Math.Tan(-13 * pi / 180 / 4);
            Arc13.Lineweight = Lineweight.W50;
            Arc13.Layer = contour;
            dxf.AddEntity(Arc13);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a1.X,a1.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a3.X,a3.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a4, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            LwPolyline Arc14 = new LwPolyline();
            Arc14.Vertexes.Add(new LwPolylineVertex(a2));
            Arc14.Vertexes.Add(new LwPolylineVertex(a8));
            Arc14.Vertexes[0].Bulge = Math.Tan(-7 * pi / 180 / 4);
            Arc14.Layer = centre;
            Arc14.Lineweight = Lineweight.W25;
            Arc14.Linetype = Linetype.DashDot;
            dxf.AddEntity(Arc14);
           
          
            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 19.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            Line line15 = new Line(fun.Polar(v3, 82 * pi / 180, 29), fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 21));
            dxf.AddEntity(line15);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 18.5), -121, 7.5, 1, "");

            

            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_15(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v2, 8 * pi / 180, 41.5429);
            Vector2 a2 = fun.Polar(a1, 78 * pi / 180, 29);
            Vector2 a3 = fun.Polar(a2, -33 * pi / 180, 12);
            Vector2 a4 = fun.Polar(a3, -47 * pi / 180, 17);
            Vector2 a5 = fun.Polar(a1, 78 * pi / 180, 16);
            Vector2 a6 = fun.Polar(a5, -11 * pi / 180, 1.6847);
            Vector2 a7 = fun.Polar(a6, 26 * pi / 180, 1.9967);
            Vector2 a8 = fun.Polar(a7, -1 * pi / 180, 4.734);
            Vector2 a9 = fun.Polar(a8, 35 * pi / 180, 2);
            Vector2 a10 = fun.Polar(a9, 1 * pi / 180, 1.8447);
            Vector2 a11 = fun.Polar(a10, 30 * pi / 180, 1.7522);
            Vector2 a12 = fun.Polar(a4, -160 * pi / 180, 5.3194);
            Vector2 a13 = fun.Polar(a12, -157 * pi / 180, 6.7978);
            Vector2 a14 = fun.Polar(a13, -158 * pi / 180, 5.54);
            Vector2 a15 = fun.Polar(a14, -164 * pi / 180, 8.3);
            Vector2 a16 = fun.Polar(a3, -47 * pi / 180, 5.35);

            Line line12 = new Line(a1, a5);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a16.X,a16.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a13.X,a13.Y, 0),
                new Vector3(a14.X,a14.Y, 0),
                new Vector3(a15.X,a15.Y, 0),
                new Vector3(a1.X,a1.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a5, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            Line line14 = new Line(a16, a4);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a2, a3);
            line15.Layer = centre;
            line15.Lineweight = Lineweight.W25;
            line15.Linetype = Linetype.DashDot;
            dxf.AddEntity(line15);
            Line line16 = new Line(a3, a16);
            line16.Layer = centre;
            line16.Lineweight = Lineweight.W25;
            line16.Linetype = Linetype.DashDot;
            dxf.AddEntity(line16);


            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 19.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            Line line17 = new Line(fun.Polar(v3, 82 * pi / 180, 29), fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 21));
            dxf.AddEntity(line17);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 18.5), -121, 7.5, 1, "");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_16(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v2, 8 * pi / 180, 41.5429);
            Vector2 a2 = fun.Polar(a1, 78 * pi / 180, 29);
            Vector2 a3 = fun.Polar(a2, -33 * pi / 180, 12);
            Vector2 a4 = fun.Polar(a3, -47 * pi / 180, 17);
            Vector2 a5 = fun.Polar(a1, 78 * pi / 180, 16);
            Vector2 a6 = fun.Polar(a5, -11 * pi / 180, 1.6847);
            Vector2 a7 = fun.Polar(a6, 26 * pi / 180, 1.9967);
            Vector2 a8 = fun.Polar(a7, -1 * pi / 180, 4.734);
            Vector2 a9 = fun.Polar(a8, 35 * pi / 180, 2);
            Vector2 a10 = fun.Polar(a9, 1 * pi / 180, 1.8447);
            Vector2 a11 = fun.Polar(a10, 30 * pi / 180, 1.7522);
            Vector2 a12 = fun.Polar(a4, -160 * pi / 180, 5.3194);
            Vector2 a13 = fun.Polar(a12, -157 * pi / 180, 6.7978);
            Vector2 a14 = fun.Polar(a13, -158 * pi / 180, 5.54);
            Vector2 a15 = fun.Polar(a14, -164 * pi / 180, 8.3);
            Vector2 a16 = fun.Polar(a3, -47 * pi / 180, 5.35);

            Line line12 = new Line(a1, a5);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a16.X,a16.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a13.X,a13.Y, 0),
                new Vector3(a14.X,a14.Y, 0),
                new Vector3(a15.X,a15.Y, 0),
                new Vector3(a1.X,a1.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a5, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            Line line14 = new Line(a16, a4);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a2, a3);
            line15.Layer = centre;
            line15.Lineweight = Lineweight.W25;
            line15.Linetype = Linetype.DashDot;
            dxf.AddEntity(line15);
            Line line16 = new Line(a3, a16);
            line16.Layer = centre;
            line16.Lineweight = Lineweight.W25;
            line16.Linetype = Linetype.DashDot;
            dxf.AddEntity(line16);


            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 19.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            Line line17 = new Line(fun.Polar(v3, 82 * pi / 180, 29), fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 21));
            dxf.AddEntity(line17);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 18.5), -121, 7.5, 1, "");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_17(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v2, 32 * pi / 180, 44);
            Vector2 a2 = fun.Polar(a1, 16 * pi / 180, 5);
            Vector2 a3 = fun.Polar(a2, -11 * pi / 180, 3.147);
            Vector2 a4 = fun.Polar(a3, 63 * pi / 180, 0.312);
            Vector2 a5 = fun.Polar(a4, 5 * pi / 180, 2.7974);
            Vector2 a6 = fun.Polar(a5, 28 * pi / 180, 2.634);
            Vector2 a7 = fun.Polar(a6, -9 * pi / 180, 2.0705);
            Vector2 a8 = fun.Polar(a7, 39 * pi / 180, 1.647);
            Vector2 a9 = fun.Polar(a8, 0 * pi / 180, 1.6822);
            Vector2 a10 = fun.Polar(a2, 16 * pi / 180, 15);
            Vector2 a11 = fun.Polar(a1, 16 * pi / 180, 26);
            Vector2 a12 = fun.Polar(a11, -93 * pi / 180, 8);
            Vector2 a13 = fun.Polar(a12, -149 * pi / 180, 1.3028);
            Vector2 a14 = fun.Polar(a13, -92 * pi / 180, 4.2498);
            Vector2 a15 = fun.Polar(a14, -125 * pi / 180, 1.2246);
            Vector2 a17 = fun.Polar(a11, -93 * pi / 180, 14);
            Vector2 a16 = fun.Polar(a17, -108 * pi / 180, 5);
            Vector2 a18 = fun.Polar(a17, -108 * pi / 180, 14);
            Vector2 a19 = fun.Polar(a18, 139 * pi / 180, 3.2632);
            Vector2 a20 = fun.Polar(a19, 150 * pi / 180, 6.2247);
            Vector2 a21 = fun.Polar(a20, 126 * pi / 180, 4.0474);
            Vector2 a22 = fun.Polar(a21, 144 * pi / 180, 4.54);
            Vector2 a23 = fun.Polar(a22, 112 * pi / 180, 3.6406);
            Vector2 a24 = fun.Polar(a23, 131 * pi / 180, 3.9313);

            List<Vector3> points1 = new List<Vector3>
           {

                new Vector3(a2.X,a2.Y, 0),
                new Vector3(a3.X,a3.Y, 0),
                new Vector3(a4.X,a4.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
                new Vector3(a6.X,a5.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a13.X,a13.Y, 0),
                new Vector3(a14.X,a14.Y, 0),
                new Vector3(a15.X,a15.Y, 0),
                new Vector3(a16.X,a16.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            List<Vector3> points3 = new List<Vector3>
           {

                new Vector3(a18.X,a18.Y, 0),
                new Vector3(a19.X,a19.Y, 0),
                new Vector3(a20.X,a20.Y, 0),
                new Vector3(a21.X,a21.Y, 0),
                new Vector3(a22.X,a22.Y, 0),
                new Vector3(a23.X,a23.Y, 0),
                new Vector3(a24.X,a24.Y, 0),
                new Vector3(a1.X,a1.Y, 0),
            };

            Spline spline3 = new Spline(points3);
            spline3.Layer = contour;
            DxfDocument doc3 = new DxfDocument();
            dxf.AddEntity(spline3);
            Line line12 = new Line(a1, a2);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            Line line13 = new Line(a10, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            Line line14 = new Line(a10, a11);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a12, a17);
            line15.Layer = centre;
            line15.Lineweight = Lineweight.W25;
            line15.Linetype = Linetype.DashDot;
            dxf.AddEntity(line15);
            Line line16 = new Line(a17, a16);
            line16.Layer = centre;
            line16.Lineweight = Lineweight.W25;
            line16.Linetype = Linetype.DashDot;
            dxf.AddEntity(line16);
            Line line18 = new Line(a11, a12);
            line18.Layer = contour;
            line18.Lineweight = Lineweight.W50;
            dxf.AddEntity(line18);
            Line line19 = new Line(a16, a18);
            line19.Layer = contour;
            line19.Lineweight = Lineweight.W50;
            dxf.AddEntity(line19);


            fun.text(dxf, new Vector2(55, -28), 2, "A-A");
            dimrot1(dxf, v16, fun.Polar(v16, 85 * pi / 180, 31.8648), 90, 30, "aa", "", "");
            Line line20 = new Line(fun.Polar(v2, 50 * pi / 180, 20), fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 19));
            dxf.AddEntity(line20);
            fun.jt(dxf, fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 1.3), -78, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 17.7), -78, 7.5, 1, "");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 0.3), -78 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v2, 50 * pi / 180, 20), 12 * pi / 180, 18.7), -78 * pi / 180, 7.5), 2, "A");



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_18(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {
                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

          

            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_19(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {
                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };
            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_20(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {
                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };
            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);



            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_21(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v1 = new Vector2(0, 0);
            Vector2 v2 = fun.Polar(v1, -90 * pi / 180, 64.5);
            Vector2 v3 = fun.Polar(v1, -90 * pi / 180, 61);
            Vector2 v4 = fun.Polar(v3, 17 * pi / 180, 2);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 5);
            Vector2 v6 = new Vector2(v3.X, v5.Y);
            Vector2 v7 = fun.Polar(v6, 66 * pi / 180, 57);
            Vector2 v8 = fun.Polar(v4, 15 * pi / 180, 8.75);
            Vector2 v9 = fun.Polar(v8, -15 * pi / 180, 11.5);
            Vector2 v10 = fun.Polar(v9, 52 * pi / 180, 6.5);
            Vector2 v11 = fun.Polar(v5, 65.5 * pi / 180, 40.2818);
            Vector2 v12 = fun.Polar(v8, 77 * pi / 180, 34.2786);
            Vector2 v22 = fun.Polar(v6, -90 * pi / 180, 2);
            Vector2 v13 = fun.Polar(v22, -173 * pi / 180, 6.8);
            Vector2 v14 = fun.Polar(v13, 140 * pi / 180, 8.25);
            Vector2 v15 = fun.Polar(v14, 65 * pi / 180, 54.2);
            Vector2 v16 = fun.Polar(v13, -176 * pi / 180, 15);
            Vector2 v17 = fun.Polar(v14, -169 * pi / 180, 11.73);
            Vector2 v18 = fun.Polar(v17, 66 * pi / 180, 57);
            Vector2 v19 = fun.Polar(v17, 70 * pi / 180, 55.45);
            Vector2 v20 = fun.Polar(v17, 77.7 * pi / 180, 30.6491);
            Vector2 v21 = fun.Polar(v20, 104 * pi / 180, 21.7);


            Line line1 = new Line(v1, v2);
            line1.Layer = centre;
            line1.Lineweight = Lineweight.W25;
            line1.Linetype = Linetype.DashDot;
            dxf.AddEntity(line1);
            LwPolyline line2 = new LwPolyline();
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Vertexes.Add(new LwPolylineVertex(v4));
            line2.Vertexes.Add(new LwPolylineVertex(v5));
            line2.Vertexes.Add(new LwPolylineVertex(v6));
            line2.Vertexes.Add(new LwPolylineVertex(v3));
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            LwPolyline line3 = new LwPolyline();
            line3.Vertexes.Add(new LwPolylineVertex(v7));
            line3.Vertexes.Add(new LwPolylineVertex(v6));
            line3.Vertexes[0].Bulge = Math.Tan(-12 * pi / 180 / 4);
            line3.Layer = contour;
            line3.Lineweight = Lineweight.W50;
            dxf.AddEntity(line3);
            LwPolyline line4 = new LwPolyline();
            line4.Vertexes.Add(new LwPolylineVertex(v7));
            line4.Vertexes.Add(new LwPolylineVertex(v5));
            line4.Vertexes[0].Bulge = Math.Tan(-16 * pi / 180 / 4);
            line4.Layer = contour;
            line4.Lineweight = Lineweight.W50;
            dxf.AddEntity(line4);
            LwPolyline line5 = new LwPolyline();
            line5.Vertexes.Add(new LwPolylineVertex(v11));
            line5.Vertexes.Add(new LwPolylineVertex(v8));
            line5.Vertexes[0].Bulge = Math.Tan(-14 * pi / 180 / 4);
            line5.Layer = contour;
            line5.Lineweight = Lineweight.W50;
            dxf.AddEntity(line5);
            LwPolyline line6 = new LwPolyline();
            line6.Vertexes.Add(new LwPolylineVertex(v12));
            line6.Vertexes.Add(new LwPolylineVertex(v10));
            line6.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v9));
            line6.Vertexes[1].Bulge = Math.Tan(37 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v8));
            line6.Vertexes[2].Bulge = Math.Tan(-26 * pi / 180 / 4);
            line6.Vertexes.Add(new LwPolylineVertex(v4));
            line6.Layer = contour;
            line6.Lineweight = Lineweight.W50;
            dxf.AddEntity(line6);
            LwPolyline line7 = new LwPolyline();
            line7.Vertexes.Add(new LwPolylineVertex(v22));
            line7.Vertexes.Add(new LwPolylineVertex(v13));
            line7.Vertexes.Add(new LwPolylineVertex(v14));
            line7.Vertexes[1].Bulge = Math.Tan(-49 * pi / 180 / 4);
            line7.Vertexes.Add(new LwPolylineVertex(v15));
            line7.Vertexes[2].Bulge = Math.Tan(-9 * pi / 180 / 4);
            line7.Layer = contour;
            line7.Lineweight = Lineweight.W50;
            dxf.AddEntity(line7);
            LwPolyline line8 = new LwPolyline();
            line8.Vertexes.Add(new LwPolylineVertex(v13));
            line8.Vertexes.Add(new LwPolylineVertex(v16));
            line8.Vertexes[0].Bulge = Math.Tan(-23 * pi / 180 / 4);
            line8.Vertexes.Add(new LwPolylineVertex(v17));
            line8.Vertexes.Add(new LwPolylineVertex(v14));
            line8.Layer = contour;
            line8.Lineweight = Lineweight.W50;
            dxf.AddEntity(line8);
            LwPolyline line9 = new LwPolyline();
            line9.Vertexes.Add(new LwPolylineVertex(v17));
            line9.Vertexes.Add(new LwPolylineVertex(v18));
            line9.Vertexes[0].Bulge = Math.Tan(-22 * pi / 180 / 4);
            line9.Layer = contour;
            line9.Lineweight = Lineweight.W50;
            dxf.AddEntity(line9);
            LwPolyline line10 = new LwPolyline();
            line10.Vertexes.Add(new LwPolylineVertex(v17));
            line10.Vertexes.Add(new LwPolylineVertex(v19));
            line10.Vertexes[0].Bulge = Math.Tan(-34 * pi / 180 / 4);
            line10.Layer = contour;
            line10.Lineweight = Lineweight.W50;
            dxf.AddEntity(line10);
            LwPolyline line11 = new LwPolyline();
            line11.Vertexes.Add(new LwPolylineVertex(v20));
            line11.Vertexes.Add(new LwPolylineVertex(v21));
            line11.Vertexes[0].Bulge = Math.Tan(-20 * pi / 180 / 4);
            line11.Layer = contour;
            line11.Lineweight = Lineweight.W50;
            dxf.AddEntity(line11);
            List<Vector3> points00 = new List<Vector3>
           {

                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v7.X,v7.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);

            Vector2 a1 = fun.Polar(v2, 8 * pi / 180, 41.5429);
            Vector2 a2 = fun.Polar(a1, 75 * pi / 180, 14.5);
            Vector2 a3 = fun.Polar(a1, 75 * pi / 180, 30);
            Vector2 a4 = fun.Polar(a3, -39 * pi / 180, 15);
            Vector2 a5 = fun.Polar(a4, -56 * pi / 180, 6);
            Vector2 a6 = fun.Polar(a4, -56 * pi / 180, 13.5);
            Vector2 a7 = fun.Polar(a2, -21 * pi / 180, 1.4991);
            Vector2 a8 = fun.Polar(a7, 31 * pi / 180, 2.16);
            Vector2 a9 = fun.Polar(a8, -18 * pi / 180, 5.0629);
            Vector2 a10 = fun.Polar(a9, 26 * pi / 180, 2.7243);
            Vector2 a11 = fun.Polar(a10, -4 * pi / 180, 6.8421);
            Vector2 a12 = fun.Polar(a6, -152 * pi / 180, 5.5039);
            Vector2 a13 = fun.Polar(a12, -170 * pi / 180, 3.7793);
            Vector2 a14 = fun.Polar(a13, -148 * pi / 180, 5.6406);
            Vector2 a15 = fun.Polar(a14, -179 * pi / 180, 6.3854);
            Vector2 a16 = fun.Polar(a15, -157 * pi / 180, 5.1504);

            Line line12 = new Line(a1, a2);
            line12.Layer = contour;
            line12.Lineweight = Lineweight.W50;
            dxf.AddEntity(line12);
            List<Vector3> points1 = new List<Vector3>
           {
                new Vector3(a2.X,a2.Y, 0),
                new Vector3(a7.X,a7.Y, 0),
                new Vector3(a8.X,a8.Y, 0),
                new Vector3(a9.X,a9.Y, 0),
                new Vector3(a10.X,a10.Y, 0),
                new Vector3(a11.X,a11.Y, 0),
                new Vector3(a5.X,a5.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            List<Vector3> points2 = new List<Vector3>
           {
                new Vector3(a6.X,a6.Y, 0),
                new Vector3(a12.X,a12.Y, 0),
                new Vector3(a13.X,a13.Y, 0),
                new Vector3(a14.X,a14.Y, 0),
                new Vector3(a15.X,a15.Y, 0),
                new Vector3(a16.X,a16.Y, 0),
                new Vector3(a1.X,a1.Y, 0),
            };

            Spline spline2 = new Spline(points2);
            spline2.Layer = contour;
            DxfDocument doc2 = new DxfDocument();
            dxf.AddEntity(spline2);
            Line line13 = new Line(a3, a2);
            line13.Layer = centre;
            line13.Lineweight = Lineweight.W25;
            line13.Linetype = Linetype.DashDot;
            dxf.AddEntity(line13);
            Line line14 = new Line(a6, a5);
            line14.Layer = contour;
            line14.Lineweight = Lineweight.W50;
            dxf.AddEntity(line14);
            Line line15 = new Line(a4, a3);
            line15.Layer = centre;
            line15.Lineweight = Lineweight.W25;
            line15.Linetype = Linetype.DashDot;
            dxf.AddEntity(line15);
            Line line16 = new Line(a4, a5);
            line16.Layer = centre;
            line16.Lineweight = Lineweight.W25;
            line16.Linetype = Linetype.DashDot;
            dxf.AddEntity(line16);

            fun.text(dxf, new Vector2(45, -28), 2, "A-A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 2.5), -121 * pi / 180, 7.5), 2, "A");
            fun.text(dxf, fun.Polar(fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 19.5), -121 * pi / 180, 7.5), 2, "A");
            dimrot1(dxf, v16, fun.Polar(v16, 84.1 * pi / 180, 33.7557), 90, 30, "aa", "", "");
            Line line17 = new Line(fun.Polar(v3, 82 * pi / 180, 29), fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 21));
            dxf.AddEntity(line17);
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 3.5), -121, 7.5, 1, "");
            fun.jt(dxf, fun.Polar(fun.Polar(v3, 82 * pi / 180, 29), -31 * pi / 180, 18.5), -121, 7.5, 1, "");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);

        }
        public static void Standard16460_22(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 125);
            Vector2 v2 = fun.Polar(v0, 0 * pi / 180, 83);
            Vector2 v3 = fun.Polar(v0, 75 * pi / 180, 125);
            Vector2 v4 = fun.Polar(v3, -69 * pi / 180, 10);
            Vector2 v5 = fun.Polar(v3, -69 * pi / 180, 114.55);
            Vector2 v6 = fun.Polar(v3, -69 * pi / 180, 125);
            Vector2 v7 = fun.Polar(v3, -69 * pi / 180, 40.25);
            Vector2 v8 = fun.Polar(v3, -69 * pi / 180, 68);
            Vector2 v9 = fun.Polar(v3, -69 * pi / 180, 95.5);
            Vector2 v10 = new Vector2(v0.X - 2, v4.Y);
            Vector2 v11 = new Vector2(v0.X - 2, v7.Y);
            Vector2 v12 = new Vector2(v0.X - 2, v8.Y);
            Vector2 v13 = new Vector2(v0.X - 2, v9.Y);
            Vector2 v14 = new Vector2(v0.X - 2, v5.Y);
            Vector2 v15 = new Vector2(v4.X, v0.Y - 2);
            Vector2 v16 = new Vector2(v7.X, v0.Y - 2);
            Vector2 v17 = new Vector2(v8.X, v0.Y - 2);
            Vector2 v18 = new Vector2(v9.X, v0.Y - 2);
            Vector2 v19 = new Vector2(v5.X, v0.Y - 2);

            fun.jt(dxf, v1, -90, 123.5, 2, "");
            fun.jt(dxf, v2, 180, 81.5, 2, "");

            Line line1 = new Line(v4, v5);
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            Line line2 = new Line(v3, v4);
            line2.Layer = refin;
            line2.Lineweight = Lineweight.W35;
            line2.Linetype = Linetype.Dashed;
            dxf.AddEntity(line2);
            Line line3 = new Line(v5, v6);
            line3.Layer = refin;
            line3.Lineweight = Lineweight.W35;
            line3.Linetype = Linetype.Dashed;
            dxf.AddEntity(line3);
            Line line4 = new Line(v10, v4);
            dxf.AddEntity(line4);
            Line line5 = new Line(v11, v7);
            dxf.AddEntity(line5);
            Line line6 = new Line(v12, v8);
            dxf.AddEntity(line6);
            Line line7 = new Line(v13, v9);
            dxf.AddEntity(line7);
            Line line8 = new Line(v14, v5);
            dxf.AddEntity(line8);
            Line line9 = new Line(v4, v15);
            dxf.AddEntity(line9);
            Line line10 = new Line(v7, v16);
            dxf.AddEntity(line10);
            Line line11 = new Line(v8, v17);
            dxf.AddEntity(line11);
            Line line12 = new Line(v9, v18);
            dxf.AddEntity(line12);
            Line line13 = new Line(v5, v19);
            dxf.AddEntity(line13);


            fun.text(dxf, new Vector2(-50, 60), 5, "刀具寿命T");
            fun.text(dxf, new Vector2(30, -15), 5, "切削速度V");
            fun.text(dxf, new Vector2(-5, 111), 2, "T₅");
            fun.text(dxf, new Vector2(-5, 83), 2, "T₄");
            fun.text(dxf, new Vector2(-5, 57), 2, "T₃");
            fun.text(dxf, new Vector2(-5, 31.5), 2, "T₂");
            fun.text(dxf, new Vector2(-5, 13.5), 2, "T₁");
            fun.text(dxf, new Vector2(35, -5), 2, "V₅");
            fun.text(dxf, new Vector2(46, -5), 2, "V₄");
            fun.text(dxf, new Vector2(56, -5), 2, "V₃");
            fun.text(dxf, new Vector2(66, -5), 2, "V₂");
            fun.text(dxf, new Vector2(73, -5), 2, "V₁");





            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_23(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 135);
            Vector2 v2 = fun.Polar(v0, 0 * pi / 180, 162);
            Vector2 v3 = fun.Polar(v0, 68 * pi / 180, 160);
            Vector2 v4 = fun.Polar(v3, -67 * pi / 180, 152);
            Vector2 v5 = fun.Polar(v0, 62 * pi / 180, 172);
            Vector2 v6 = fun.Polar(v5, -82 * pi / 180, 145);
            Vector2 v7 = fun.Polar(v3, -67 * pi / 180, 81.5205);
            Vector2 v8 = fun.Polar(v3, -67 * pi / 180, 37.5);
            Vector2 v9 = fun.Polar(v3, -67 * pi / 180, 68.5);
            Vector2 v10 = fun.Polar(v3, -67 * pi / 180, 143);
            Vector2 v11 = fun.Polar(v5, -82 * pi / 180, 36);
            Vector2 v12 = fun.Polar(v5, -82 * pi / 180, 110);
            Vector2 v13 = fun.Polar(v5, -82 * pi / 180, 133);

            fun.jt(dxf, v1, -90, 133.5, 2, "");
            fun.jt(dxf, v2, 180, 160.5, 2, "");


            Line line1 = new Line(v3, v7);
            line1.Layer = contour;
            line1.Lineweight = Lineweight.W50;
            dxf.AddEntity(line1);
            Line line2 = new Line(v7, v6);
            line2.Layer = contour;
            line2.Lineweight = Lineweight.W50;
            dxf.AddEntity(line2);
            Line line3 = new Line(v5, v7);
            line3.Layer = refin;
            line3.Lineweight = Lineweight.W35;
            line3.Linetype = Linetype.Dashed;
            dxf.AddEntity(line3);
            Line line4 = new Line(v7, v4);
            line4.Layer = refin;
            line4.Lineweight = Lineweight.W35;
            line4.Linetype = Linetype.Dashed;
            dxf.AddEntity(line4);

            fun.jt(dxf, v8, 149, 13, 1, "");
            fun.jt(dxf, v9, -120, 30.5045, 1, "");
            fun.jt(dxf, v12, 150, 27.7812, 1, "");
            fun.jt(dxf, v13, -156, 17, 1, "");
            fun.jt(dxf, v11, 36, 20, 1, "");
            fun.jt(dxf, v10, 38, 16, 1, "");



            Line line5 = new Line(fun.Polar(v8, 149 * pi / 180, 14.5), fun.Polar(fun.Polar(v8, 149 * pi / 180, 14.5), 180 * pi / 180, 30));
            dxf.AddEntity(line5);
            Line line6 = new Line(fun.Polar(v9, -120 * pi / 180, 32.0045), fun.Polar(fun.Polar(v9, -120 * pi / 180, 32.0045), 180 * pi / 180, 33));
            dxf.AddEntity(line6);
            Line line7 = new Line(fun.Polar(v13, -156 * pi / 180, 18.5), fun.Polar(fun.Polar(v13, -156 * pi / 180, 18.5), 180 * pi / 180, 34));
            dxf.AddEntity(line7);
            Line line8 = new Line(fun.Polar(v11, 36 * pi / 180, 21.5), fun.Polar(fun.Polar(v11, 36 * pi / 180, 21.5), 0 * pi / 180, 68));
            dxf.AddEntity(line8);
            Line line9 = new Line(fun.Polar(v10, 38 * pi / 180, 17.5), fun.Polar(fun.Polar(v10, 38 * pi / 180, 17.5), 0 * pi / 180, 69));
            dxf.AddEntity(line9);


            fun.text(dxf, new Vector2(-55, 105), 5, "刀具寿命T/min");
            fun.text(dxf, new Vector2(75, -15), 5, "切削速度V/min");
            fun.text(dxf, new Vector2(33.5, 123.5), 3, "判据Ⅱ");
            fun.text(dxf, new Vector2(50, 14.25), 3, "判据Ⅰ");
            fun.text(dxf, new Vector2(39, 59), 3, "判据合成");
            fun.text(dxf, new Vector2(114, 130), 3, "判据Ⅰ(如后面磨损)");
            fun.text(dxf, new Vector2(137.5, 30), 3, "判据Ⅱ(如月牙洼磨损)");

            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_24(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 145);
            Vector2 v2 = fun.Polar(v0, 0 * pi / 180, 247);
            Vector2 v3 = fun.Polar(v0, 90 * pi / 180, 15.25);
            Vector2 v4 = fun.Polar(v3, 90 * pi / 180, 18.5);
            Vector2 v5 = fun.Polar(v4, 90 * pi / 180, 19);
            Vector2 v6 = fun.Polar(v5, 90 * pi / 180, 17.5);
            Vector2 v7 = fun.Polar(v6, 90 * pi / 180, 19);
            Vector2 v8 = fun.Polar(v7, 90 * pi / 180, 16.75);
            Vector2 v9 = fun.Polar(v8, 90 * pi / 180, 18.5);
            Vector2 v10 = fun.Polar(v0, 0 * pi / 180, 38);
            Vector2 v11 = fun.Polar(v10, 0 * pi / 180, 41.5);
            Vector2 v12 = fun.Polar(v11, 0 * pi / 180, 40);
            Vector2 v13 = fun.Polar(v12, 0 * pi / 180, 39);
            Vector2 v14 = fun.Polar(v13, 0 * pi / 180, 41.75);


            fun.jt(dxf, v1, -90, 143.5, 2, "");
            fun.jt(dxf, v2, 180, 245.5, 2, "");


            Line line1 = new Line(fun.Polar(v3, pi, 4), fun.Polar(v3, 0, 242));
            dxf.AddEntity(line1);
            Line line2 = new Line(fun.Polar(v4, pi, 4), fun.Polar(v4, 0, 242));
            dxf.AddEntity(line2);
            Line line3 = new Line(fun.Polar(v5, pi, 4), fun.Polar(v5, 0, 242));
            dxf.AddEntity(line3);
            Line line4 = new Line(fun.Polar(v6, pi, 4), fun.Polar(v6, 0, 242));
            dxf.AddEntity(line4);
            Line line5 = new Line(fun.Polar(v7, pi, 4), fun.Polar(v7, 0, 242));
            dxf.AddEntity(line5);
            Line line6 = new Line(fun.Polar(v8, pi, 4), fun.Polar(v8, 0, 242));
            line6.Linetype = Linetype.Dashed;
            dxf.AddEntity(line6);
            Line line7 = new Line(fun.Polar(v9, pi, 4), fun.Polar(v9, 0, 242));
            dxf.AddEntity(line7);
            Line line8 = new Line(fun.Polar(v10, -90 * pi / 180, 3.75), v10);
            dxf.AddEntity(line8);
            Line line9 = new Line(fun.Polar(v11, -90 * pi / 180, 3.75), v11);
            dxf.AddEntity(line9);
            Line line10 = new Line(fun.Polar(v12, -90 * pi / 180, 3.75), v12);
            dxf.AddEntity(line10);
            Line line11 = new Line(fun.Polar(v13, -90 * pi / 180, 3.75), v13);
            dxf.AddEntity(line11);
            Line line12 = new Line(fun.Polar(v14, -90 * pi / 180, 3.75), v14);
            dxf.AddEntity(line12);




            fun.text(dxf, new Vector2(-65, 105), 5, "刀具失效如：VB");
            fun.text(dxf, new Vector2(105, -15), 5, "有效切削时间");

            //三角
            Vector2 v15 = fun.Polar(v10, 100 * pi / 180, 5.9);
            LwPolyline line13 = new LwPolyline();
            line13.Vertexes.Add(new LwPolylineVertex(v15));
            line13.Vertexes.Add(new LwPolylineVertex(fun.Polar(v15, 0, 3.5)));
            line13.Vertexes.Add(new LwPolylineVertex(fun.Polar(v15, 60 * pi / 180, 3.5)));
            line13.Vertexes.Add(new LwPolylineVertex(v15));
            dxf.AddEntity(line13);
            //圆
            Vector2 v16 = fun.Polar(v10, 87 * pi / 180, 12.5);
            Circle circle14 = new Circle(v16, 1.6);
            dxf.AddEntity(circle14);
            //三角
            Vector2 v17 = fun.Polar(v15, 90 * pi / 180, 12.1);
            LwPolyline line15 = new LwPolyline();
            line15.Vertexes.Add(new LwPolylineVertex(v17));
            line15.Vertexes.Add(new LwPolylineVertex(fun.Polar(v17, 0, 3.5)));
            line15.Vertexes.Add(new LwPolylineVertex(fun.Polar(v17, 60 * pi / 180, 3.5)));
            line15.Vertexes.Add(new LwPolylineVertex(v17));
            dxf.AddEntity(line15);
            //X
            Vector2 v18 = fun.Polar(v10, 88 * pi / 180, 24.7949);
            Line line16 = new Line(fun.Polar(v18, 45 * pi / 180, 2), fun.Polar(v18, -135 * pi / 180, 2));
            dxf.AddEntity(line16);
            Line line17 = new Line(fun.Polar(v18, -45 * pi / 180, 2), fun.Polar(v18, 135 * pi / 180, 2));
            dxf.AddEntity(line17);
            //+
            Vector2 v19 = fun.Polar(v10, 87 * pi / 180, 30.44);
            Line line18 = new Line(fun.Polar(v19, 90 * pi / 180, 2), fun.Polar(v19, -90 * pi / 180, 2));
            dxf.AddEntity(line18);
            Line line19 = new Line(fun.Polar(v19, 0 * pi / 180, 2), fun.Polar(v19, 180 * pi / 180, 2));
            dxf.AddEntity(line19);
            //圆
            Vector2 v20 = fun.Polar(v10, 88 * pi / 180, 36.8854);
            Circle circle20 = new Circle(v20, 1.6);
            dxf.AddEntity(circle20);

            //三角
            Vector2 v21 = fun.Polar(v11, 94 * pi / 180, 23.2712);
            LwPolyline line21 = new LwPolyline();
            line21.Vertexes.Add(new LwPolylineVertex(v21));
            line21.Vertexes.Add(new LwPolylineVertex(fun.Polar(v21, 0, 3.5)));
            line21.Vertexes.Add(new LwPolylineVertex(fun.Polar(v21, 60 * pi / 180, 3.5)));
            line21.Vertexes.Add(new LwPolylineVertex(v21));
            dxf.AddEntity(line21);
            //圆
            Vector2 v22 = fun.Polar(v11, 91 * pi / 180, 19.2133);
            Circle circle22 = new Circle(v22, 1.6);
            dxf.AddEntity(circle22);
            //三角
            Vector2 v23 = fun.Polar(v21, 90 * pi / 180, 5.57);
            LwPolyline line23 = new LwPolyline();
            line23.Vertexes.Add(new LwPolylineVertex(v23));
            line23.Vertexes.Add(new LwPolylineVertex(fun.Polar(v23, 0, 3.5)));
            line23.Vertexes.Add(new LwPolylineVertex(fun.Polar(v23, 60 * pi / 180, 3.5)));
            line23.Vertexes.Add(new LwPolylineVertex(v23));
            dxf.AddEntity(line23);
            //X
            Vector2 v24 = fun.Polar(v11, 90 * pi / 180, 43.1846);
            Line line24 = new Line(fun.Polar(v24, 45 * pi / 180, 2), fun.Polar(v24, -135 * pi / 180, 2));
            dxf.AddEntity(line24);
            Line line25 = new Line(fun.Polar(v24, -45 * pi / 180, 2), fun.Polar(v24, 135 * pi / 180, 2));
            dxf.AddEntity(line25);
            //+
            Vector2 v25 = fun.Polar(v11, 90 * pi / 180, 37.0185);
            Line line26 = new Line(fun.Polar(v25, 90 * pi / 180, 2), fun.Polar(v25, -90 * pi / 180, 2));
            dxf.AddEntity(line26);
            Line line27 = new Line(fun.Polar(v25, 0 * pi / 180, 2), fun.Polar(v25, 180 * pi / 180, 2));
            dxf.AddEntity(line27);
            //圆
            Vector2 v26 = fun.Polar(v11, 90 * pi / 180, 47.8174);
            Circle circle28 = new Circle(v26, 1.6);
            dxf.AddEntity(circle28);

            //三角
            Vector2 v27 = fun.Polar(v12, 92 * pi / 180, 47.1754);
            LwPolyline line29 = new LwPolyline();
            line29.Vertexes.Add(new LwPolylineVertex(v27));
            line29.Vertexes.Add(new LwPolylineVertex(fun.Polar(v27, 0, 3.5)));
            line29.Vertexes.Add(new LwPolylineVertex(fun.Polar(v27, 60 * pi / 180, 3.5)));
            line29.Vertexes.Add(new LwPolylineVertex(v27));
            dxf.AddEntity(line29);
            //圆
            Vector2 v28 = fun.Polar(v12, 90 * pi / 180, 41.6135);
            Circle circle30 = new Circle(v28, 1.6);
            dxf.AddEntity(circle30);
            //三角
            Vector2 v29 = fun.Polar(v12, 92 * pi / 180, 55.5878);
            LwPolyline line31 = new LwPolyline();
            line31.Vertexes.Add(new LwPolylineVertex(v29));
            line31.Vertexes.Add(new LwPolylineVertex(fun.Polar(v29, 0, 3.5)));
            line31.Vertexes.Add(new LwPolylineVertex(fun.Polar(v29, 60 * pi / 180, 3.5)));
            line31.Vertexes.Add(new LwPolylineVertex(v29));
            dxf.AddEntity(line31);
            //X
            Vector2 v30 = fun.Polar(v12, 90 * pi / 180, 63.9383);
            Line line32 = new Line(fun.Polar(v30, 45 * pi / 180, 2), fun.Polar(v30, -135 * pi / 180, 2));
            dxf.AddEntity(line32);
            Line line33 = new Line(fun.Polar(v30, -45 * pi / 180, 2), fun.Polar(v30, 135 * pi / 180, 2));
            dxf.AddEntity(line33);
            //+
            Vector2 v31 = fun.Polar(v12, 84 * pi / 180, 64.2581);
            Line line34 = new Line(fun.Polar(v31, 90 * pi / 180, 2), fun.Polar(v31, -90 * pi / 180, 2));
            dxf.AddEntity(line34);
            Line line35 = new Line(fun.Polar(v31, 0 * pi / 180, 2), fun.Polar(v31, 180 * pi / 180, 2));
            dxf.AddEntity(line35);
            //圆
            Vector2 v32 = fun.Polar(v12, 89.5 * pi / 180, 68.647);
            Circle circle36 = new Circle(v32, 1.6);
            dxf.AddEntity(circle36);

            //三角
            Vector2 v33 = fun.Polar(v13, 91 * pi / 180, 60.8468);
            LwPolyline line37 = new LwPolyline();
            line37.Vertexes.Add(new LwPolylineVertex(v33));
            line37.Vertexes.Add(new LwPolylineVertex(fun.Polar(v33, 0, 3.5)));
            line37.Vertexes.Add(new LwPolylineVertex(fun.Polar(v33, 60 * pi / 180, 3.5)));
            line37.Vertexes.Add(new LwPolylineVertex(v33));
            dxf.AddEntity(line37);
            //圆
            Vector2 v34 = fun.Polar(v13, 89 * pi / 180, 67.4742);
            Circle circle38 = new Circle(v34, 1.6);
            dxf.AddEntity(circle38);
            //三角
            Vector2 v35 = fun.Polar(v13, 91 * pi / 180, 74.2673);
            LwPolyline line39 = new LwPolyline();
            line39.Vertexes.Add(new LwPolylineVertex(v35));
            line39.Vertexes.Add(new LwPolylineVertex(fun.Polar(v35, 0, 3.5)));
            line39.Vertexes.Add(new LwPolylineVertex(fun.Polar(v35, 60 * pi / 180, 3.5)));
            line39.Vertexes.Add(new LwPolylineVertex(v35));
            dxf.AddEntity(line39);
            //X
            Vector2 v36 = fun.Polar(v13, 89 * pi / 180, 83.9375);
            Line line40 = new Line(fun.Polar(v36, 45 * pi / 180, 2), fun.Polar(v36, -135 * pi / 180, 2));
            dxf.AddEntity(line40);
            Line line41 = new Line(fun.Polar(v36, -45 * pi / 180, 2), fun.Polar(v36, 135 * pi / 180, 2));
            dxf.AddEntity(line41);
            //+
            Vector2 v37 = fun.Polar(v13, 85 * pi / 180, 84.1774);
            Line line42 = new Line(fun.Polar(v37, 90 * pi / 180, 2), fun.Polar(v37, -90 * pi / 180, 2));
            dxf.AddEntity(line42);
            Line line43 = new Line(fun.Polar(v37, 180 * pi / 180, 2), fun.Polar(v37, 0 * pi / 180, 2));
            dxf.AddEntity(line43);
            //圆
            Vector2 v38 = fun.Polar(v13, 89 * pi / 180, 91.6284);
            Circle circle44 = new Circle(v38, 1.6);
            dxf.AddEntity(circle44);

            //三角
            Vector2 v39 = fun.Polar(v14, 92 * pi / 180, 95.5812);
            LwPolyline line45 = new LwPolyline();
            line45.Vertexes.Add(new LwPolylineVertex(v39));
            line45.Vertexes.Add(new LwPolylineVertex(fun.Polar(v39, 0, 3.5)));
            line45.Vertexes.Add(new LwPolylineVertex(fun.Polar(v39, 60 * pi / 180, 3.5)));
            line45.Vertexes.Add(new LwPolylineVertex(v39));
            dxf.AddEntity(line45);
            //圆
            Vector2 v40 = fun.Polar(v14, 91 * pi / 180, 102.5175);
            Circle circle46 = new Circle(v40, 1.6);
            dxf.AddEntity(circle46);
            //三角
            Vector2 v41 = fun.Polar(v14, 89 * pi / 180, 112.0652);
            LwPolyline line47 = new LwPolyline();
            line47.Vertexes.Add(new LwPolylineVertex(v41));
            line47.Vertexes.Add(new LwPolylineVertex(fun.Polar(v41, 0, 3.5)));
            line47.Vertexes.Add(new LwPolylineVertex(fun.Polar(v41, 60 * pi / 180, 3.5)));
            line47.Vertexes.Add(new LwPolylineVertex(v41));
            dxf.AddEntity(line47);
            //X
            Vector2 v42 = fun.Polar(v14, 91 * pi / 180, 121.1053);
            Line line48 = new Line(fun.Polar(v42, 45 * pi / 180, 2), fun.Polar(v42, -135 * pi / 180, 2));
            dxf.AddEntity(line48);
            Line line49 = new Line(fun.Polar(v42, -45 * pi / 180, 2), fun.Polar(v42, 135 * pi / 180, 2));
            dxf.AddEntity(line49);
            //+
            Vector2 v43 = fun.Polar(v14, 91 * pi / 180, 113.7702);
            Line line50 = new Line(fun.Polar(v43, 90 * pi / 180, 2), fun.Polar(v43, -90 * pi / 180, 2));
            dxf.AddEntity(line50);
            Line line51 = new Line(fun.Polar(v43, 0 * pi / 180, 2), fun.Polar(v43, 180 * pi / 180, 2));
            dxf.AddEntity(line51);
            //圆
            Vector2 v44 = fun.Polar(v14, 91 * pi / 180, 127.3726);
            Circle circle52 = new Circle(v44, 1.6);
            dxf.AddEntity(circle52);

            //三角
            Vector2 v45 = fun.Polar(v14, 6 * pi / 180, 27.6047);
            LwPolyline line53 = new LwPolyline();
            line53.Vertexes.Add(new LwPolylineVertex(v45));
            line53.Vertexes.Add(new LwPolylineVertex(fun.Polar(v45, 0, 3.5)));
            line53.Vertexes.Add(new LwPolylineVertex(fun.Polar(v45, 60 * pi / 180, 3.5)));
            line53.Vertexes.Add(new LwPolylineVertex(v45));
            dxf.AddEntity(line53);
            //圆
            Vector2 v46 = fun.Polar(v14, 24 * pi / 180, 31.9772);
            Circle circle54 = new Circle(v46, 1.6);
            dxf.AddEntity(circle54);
            //三角
            Vector2 v47 = fun.Polar(v14, 53 * pi / 180, 46.2568);
            LwPolyline line55 = new LwPolyline();
            line55.Vertexes.Add(new LwPolylineVertex(v47));
            line55.Vertexes.Add(new LwPolylineVertex(fun.Polar(v47, 0, 3.5)));
            line55.Vertexes.Add(new LwPolylineVertex(fun.Polar(v47, 60 * pi / 180, 3.5)));
            line55.Vertexes.Add(new LwPolylineVertex(v47));
            dxf.AddEntity(line55);
            //X
            Vector2 v48 = fun.Polar(v14, 45 * pi / 180, 41.0399);
            Line line56 = new Line(fun.Polar(v48, 45 * pi / 180, 2), fun.Polar(v48, -135 * pi / 180, 2));
            dxf.AddEntity(line56);
            Line line57 = new Line(fun.Polar(v48, -45 * pi / 180, 2), fun.Polar(v48, 135 * pi / 180, 2));
            dxf.AddEntity(line57);
            //+
            Vector2 v49 = fun.Polar(v14, 35 * pi / 180, 35.1081);
            Line line58 = new Line(fun.Polar(v49, 90 * pi / 180, 2), fun.Polar(v49, -90 * pi / 180, 2));
            dxf.AddEntity(line58);
            Line line59 = new Line(fun.Polar(v49, 0 * pi / 180, 2), fun.Polar(v49, 180 * pi / 180, 2));
            dxf.AddEntity(line59);
            //圆
            Vector2 v50 = fun.Polar(v14, 59 * pi / 180, 56.5198);
            Circle circle60 = new Circle(v50, 1.6);
            dxf.AddEntity(circle60);



            fun.text(dxf, new Vector2(17, 109), 3, "刀具寿命判据");
            fun.text(dxf, new Vector2(195, 60), 3, "试验");
            fun.text(dxf, new Vector2(195, 55), 3, "次数");
            fun.text(dxf, new Vector2(225, 55), 3, "标记");
            fun.text(dxf, new Vector2(200, 48), 3, "1");
            fun.text(dxf, new Vector2(200, 38), 3, "2");
            fun.text(dxf, new Vector2(200, 28), 3, "3");
            fun.text(dxf, new Vector2(200, 19), 3, "4");
            fun.text(dxf, new Vector2(200, 10), 3, "5");
            fun.text(dxf, new Vector2(200, 3), 3, "6");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_25(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 145);
            Vector2 v2 = fun.Polar(v0, 0 * pi / 180, 247);
            Vector2 v3 = fun.Polar(v0, 90 * pi / 180, 18.25);
            Vector2 v4 = fun.Polar(v0, 90 * pi / 180, 36.12);
            Vector2 v5 = fun.Polar(v0, 90 * pi / 180, 54.25);
            Vector2 v6 = fun.Polar(v0, 90 * pi / 180, 73.09);
            Vector2 v7 = fun.Polar(v0, 90 * pi / 180, 91.48);
            Vector2 v8 = fun.Polar(v0, 90 * pi / 180, 106.9);
            Vector2 v9 = fun.Polar(v0, 90 * pi / 180, 124.5);
            Vector2 v10 = fun.Polar(v0, 0 * pi / 180, 36.9);
            Vector2 v11 = fun.Polar(v0, 0 * pi / 180, 78.33);
            Vector2 v12 = fun.Polar(v0, 0 * pi / 180, 119.5);
            Vector2 v13 = fun.Polar(v0, 0 * pi / 180, 158.5);
            Vector2 v14 = fun.Polar(v0, 0 * pi / 180, 190.85);
            Vector2 v15 = fun.Polar(v10, 90 * pi / 180, 26.21);
            Vector2 v16 = fun.Polar(v11, 90 * pi / 180, 41.55);
            Vector2 v17 = fun.Polar(v12, 90 * pi / 180, 57.84);
            Vector2 v18 = fun.Polar(v13, 90 * pi / 180, 79.31);
            Vector2 v19 = fun.Polar(v14, 90 * pi / 180, 108.03);
            Vector2 v20 = fun.Polar(v0, 32 * pi / 180, 248.0922);
            Vector2 v21 = fun.Polar(v14, 44 * pi / 180, 10.5);
            Vector2 v22 = fun.Polar(v21, 0 * pi / 180, 8.5);


            fun.jt(dxf, v1, -90, 143.5, 2, "");
            fun.jt(dxf, v2, 180, 245.5, 2, "");


            List<Vector3> points00 = new List<Vector3>
           {
                new Vector3(v0.X,v0.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v16.X,v16.Y, 0),
                new Vector3(v17.X,v17.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v20.X,v20.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            spline00.Lineweight = Lineweight.W50;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00);
            Line line1 = new Line(fun.Polar(v3, pi, 4), fun.Polar(v3, 0, 242));
            dxf.AddEntity(line1);
            Line line2 = new Line(fun.Polar(v4, pi, 4), fun.Polar(v4, 0, 242));
            dxf.AddEntity(line2);
            Line line3 = new Line(fun.Polar(v5, pi, 4), fun.Polar(v5, 0, 242));
            dxf.AddEntity(line3);
            Line line4 = new Line(fun.Polar(v6, pi, 4), fun.Polar(v6, 0, 242));
            dxf.AddEntity(line4);
            Line line5 = new Line(fun.Polar(v7, pi, 4), fun.Polar(v7, 0, 242));
            dxf.AddEntity(line5);
            Line line6 = new Line(fun.Polar(v8, pi, 4), fun.Polar(v8, 0, 242));
            line6.Linetype = Linetype.Dashed;
            dxf.AddEntity(line6);
            Line line7 = new Line(fun.Polar(v9, pi, 4), fun.Polar(v9, 0, 242));
            dxf.AddEntity(line7);
            Line line8 = new Line(fun.Polar(v10, -90 * pi / 180, 3.75), v10);
            dxf.AddEntity(line8);
            Line line9 = new Line(fun.Polar(v11, -90 * pi / 180, 3.75), v11);
            dxf.AddEntity(line9);
            Line line10 = new Line(fun.Polar(v12, -90 * pi / 180, 3.75), v12);
            dxf.AddEntity(line10);
            Line line11 = new Line(fun.Polar(v13, -90 * pi / 180, 3.75), v13);
            dxf.AddEntity(line11);
            Line line12 = new Line(v19, v14);
            dxf.AddEntity(line12);
            Line line13 = new Line(fun.Polar(v15, 45 * pi / 180, 2), fun.Polar(v15, -135 * pi / 180, 2));
            dxf.AddEntity(line13);
            Line line14 = new Line(fun.Polar(v15, -45 * pi / 180, 2), fun.Polar(v15, 135 * pi / 180, 2));
            dxf.AddEntity(line14);
            Line line15 = new Line(fun.Polar(v16, 45 * pi / 180, 2), fun.Polar(v16, -135 * pi / 180, 2));
            dxf.AddEntity(line15);
            Line line16 = new Line(fun.Polar(v16, -45 * pi / 180, 2), fun.Polar(v16, 135 * pi / 180, 2));
            dxf.AddEntity(line16);
            Line line17 = new Line(fun.Polar(v17, 45 * pi / 180, 2), fun.Polar(v17, -135 * pi / 180, 2));
            dxf.AddEntity(line17);
            Line line18 = new Line(fun.Polar(v17, -45 * pi / 180, 2), fun.Polar(v17, 135 * pi / 180, 2));
            dxf.AddEntity(line18);
            Line line19 = new Line(fun.Polar(v18, 45 * pi / 180, 2), fun.Polar(v18, -135 * pi / 180, 2));
            dxf.AddEntity(line19);
            Line line20 = new Line(fun.Polar(v18, -45 * pi / 180, 2), fun.Polar(v18, 135 * pi / 180, 2));
            dxf.AddEntity(line20);
            Line line21 = new Line(fun.Polar(v19, 45 * pi / 180, 2), fun.Polar(v19, -135 * pi / 180, 2));
            dxf.AddEntity(line21);
            Line line22 = new Line(fun.Polar(v19, -45 * pi / 180, 2), fun.Polar(v19, 135 * pi / 180, 2));
            dxf.AddEntity(line22);
            Line line23 = new Line(v14, v21);
            dxf.AddEntity(line23);
            Line line24 = new Line(v21, v22);
            dxf.AddEntity(line24);

            fun.text(dxf, new Vector2(-65, 105), 5, "刀具失效如：VB");
            fun.text(dxf, new Vector2(190, -15), 5, "有效切削时间");
            fun.text(dxf, new Vector2(7, 110), 5, "刀具寿命判据");
            fun.text(dxf, new Vector2(210, 5), 5, "刀具寿命");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
        public static void Standard16460_26(Dictionary<string, Object> data)
        {
            DxfDocument dxf = new DxfDocument();
            //图层
            Layer contour = new Layer("contour") { Color = AciColor.Cyan };    //轮廓层
            Layer dimensioning = new Layer("dimensioning");    //尺寸层
            Layer refin = new Layer("refin") { Color = AciColor.Red };    //基准线/内轮廓
            Layer centre = new Layer("centre") { Color = AciColor.Yellow };    //中心线
            Layer textlayer = new Layer("textlayer") { Color = AciColor.Blue };    //文本层
            Layer hatching = new Layer("hatching") { Color = AciColor.Blue };    //填充层
            Layer additionalline = new Layer("additionalline") { Color = AciColor.Cyan };    //附加线
            Layer cutting = new Layer("cutting") { Color = AciColor.Red };    //切削层
            Layer nocutting = new Layer("nocutting");    //非切削层
            Layer skcontour = new Layer("skcontour") { Color = AciColor.Cyan };    //sk轮廓层
            Layer skdimensioning = new Layer("skdimensioning");    //sk尺寸线层
            Layer skrefin = new Layer("skrefin") { Color = AciColor.Red };    //sk基准线/内轮廓
            Layer sktext = new Layer("sktext") { Color = AciColor.Blue };  //sk文本
            Layer skhatching = new Layer("skhatching") { Color = AciColor.Blue };    //sk填充
            Layer skadditionlline = new Layer("skadditionlline") { Color = AciColor.Cyan };    //sk附加线
            Layer skviewcontour = new Layer("skviewcontour") { Color = AciColor.Cyan };    //skview轮廓
            Layer skviewdimensioning = new Layer("skviewdimensioning");    //skview尺寸线层
                                                                           //参数
            double pi = Math.PI;
            string path = Convert.ToString(data["path"]);
            //坐标
            Vector2 v0 = new Vector2(0, 0);
            Vector2 v1 = fun.Polar(v0, 90 * pi / 180, 145);
            Vector2 v2 = fun.Polar(v0, 0 * pi / 180, 247);
            Vector2 v3 = fun.Polar(v0, 90 * pi / 180, 15.75);
            Vector2 v4 = fun.Polar(v0, 90 * pi / 180, 33.75);
            Vector2 v5 = fun.Polar(v0, 90 * pi / 180, 50.5);
            Vector2 v6 = fun.Polar(v0, 90 * pi / 180, 68.5);
            Vector2 v7 = fun.Polar(v0, 90 * pi / 180, 86.75);
            Vector2 v8 = fun.Polar(v0, 90 * pi / 180, 103.75);
            Vector2 v9 = fun.Polar(v0, 90 * pi / 180, 120.75);
            Vector2 v10 = fun.Polar(v0, 0 * pi / 180, 37.75);
            Vector2 v11 = fun.Polar(v0, 0 * pi / 180, 76.75);
            Vector2 v12 = fun.Polar(v0, 0 * pi / 180, 114.5);
            Vector2 v13 = fun.Polar(v0, 0 * pi / 180, 151.75);
            Vector2 v14 = fun.Polar(v0, 0 * pi / 180, 189.75);
            Vector2 v15 = fun.Polar(v10, 90 * pi / 180, 35.75);
            Vector2 v16 = fun.Polar(v11, 90 * pi / 180, 49.75);
            Vector2 v17 = fun.Polar(v12, 90 * pi / 180, 66.75);
            Vector2 v18 = fun.Polar(v13, 90 * pi / 180, 88);
            Vector2 v19 = fun.Polar(v14, 90 * pi / 180, 126.75);
            Vector2 v20 = fun.Polar(v0, 34.5 * pi / 180, 235);
            Vector2 v21 = fun.Polar(v10, 90 * pi / 180, 10.75);
            Vector2 v22 = fun.Polar(v11, 90 * pi / 180, 22);
            Vector2 v23 = fun.Polar(v12, 90 * pi / 180, 38);
            Vector2 v24 = fun.Polar(v13, 90 * pi / 180, 60.25);
            Vector2 v25 = fun.Polar(v14, 90 * pi / 180, 96);
            Vector2 v26 = fun.Polar(v0, 28.5 * pi / 180, 224);


            fun.jt(dxf, v1, -90, 143.5, 2, "");
            fun.jt(dxf, v2, 180, 245.5, 2, "");


            List<Vector3> points00 = new List<Vector3>
           {
                new Vector3(v0.X,v0.Y, 0),
                new Vector3(v15.X,v15.Y, 0),
                new Vector3(v16.X,v16.Y, 0),
                new Vector3(v17.X,v17.Y, 0),
                new Vector3(v18.X,v18.Y, 0),
                new Vector3(v19.X,v19.Y, 0),
                new Vector3(v20.X,v20.Y, 0),
            };

            Spline spline00 = new Spline(points00);
            spline00.Layer = contour;
            spline00.Lineweight = Lineweight.W50;
            DxfDocument doc00 = new DxfDocument();
            dxf.AddEntity(spline00); 
            List<Vector3> points1 = new List<Vector3>
           {
                new Vector3(v0.X,v0.Y, 0),
                new Vector3(v21.X,v21.Y, 0),
                new Vector3(v22.X,v22.Y, 0),
                new Vector3(v23.X,v23.Y, 0),
                new Vector3(v24.X,v24.Y, 0),
                new Vector3(v25.X,v25.Y, 0),
                new Vector3(v26.X,v26.Y, 0),
            };

            Spline spline1 = new Spline(points1);
            spline1.Layer = contour;
            spline1.Lineweight = Lineweight.W50;
            DxfDocument doc1 = new DxfDocument();
            dxf.AddEntity(spline1);
            Line line1 = new Line(fun.Polar(v3, pi, 4), fun.Polar(v3, 0, 242));
            dxf.AddEntity(line1);
            Line line2 = new Line(fun.Polar(v4, pi, 4), fun.Polar(v4, 0, 242));
            dxf.AddEntity(line2);
            Line line3 = new Line(fun.Polar(v5, pi, 4), fun.Polar(v5, 0, 242));
            dxf.AddEntity(line3);
            Line line4 = new Line(fun.Polar(v6, pi, 4), fun.Polar(v6, 0, 242));
            dxf.AddEntity(line4);
            Line line5 = new Line(fun.Polar(v7, pi, 4), fun.Polar(v7, 0, 242));
            dxf.AddEntity(line5);
            Line line6 = new Line(fun.Polar(v8, pi, 4), fun.Polar(v8, 0, 242));
            line6.Linetype = Linetype.Dashed;
            dxf.AddEntity(line6);
            Line line7 = new Line(fun.Polar(v9, pi, 4), fun.Polar(v9, 0, 242));
            dxf.AddEntity(line7);
            Line line8 = new Line(fun.Polar(v10, -90 * pi / 180, 4), v10);
            dxf.AddEntity(line8);
            Line line9 = new Line(fun.Polar(v11, -90 * pi / 180, 4), v11);
            dxf.AddEntity(line9);
            Line line10 = new Line(fun.Polar(v12, -90 * pi / 180, 4), v12);
            dxf.AddEntity(line10);
            Line line11 = new Line(fun.Polar(v13, -90 * pi / 180, 4), v13);
            dxf.AddEntity(line11);
            Line line12 = new Line(fun.Polar(v14, -90 * pi / 180, 4), v14);
            dxf.AddEntity(line12);
            Line line13 = new Line(fun.Polar(v15, 45 * pi / 180, 2), fun.Polar(v15, -135 * pi / 180, 2));
            dxf.AddEntity(line13);
            Line line14 = new Line(fun.Polar(v15, -45 * pi / 180, 2), fun.Polar(v15, 135 * pi / 180, 2));
            dxf.AddEntity(line14);
            Line line15 = new Line(fun.Polar(v16, 45 * pi / 180, 2), fun.Polar(v16, -135 * pi / 180, 2));
            dxf.AddEntity(line15);
            Line line16 = new Line(fun.Polar(v16, -45 * pi / 180, 2), fun.Polar(v16, 135 * pi / 180, 2));
            dxf.AddEntity(line16);
            Line line17 = new Line(fun.Polar(v17, 45 * pi / 180, 2), fun.Polar(v17, -135 * pi / 180, 2));
            dxf.AddEntity(line17);
            Line line18 = new Line(fun.Polar(v17, -45 * pi / 180, 2), fun.Polar(v17, 135 * pi / 180, 2));
            dxf.AddEntity(line18);
            Line line19 = new Line(fun.Polar(v18, 45 * pi / 180, 2), fun.Polar(v18, -135 * pi / 180, 2));
            dxf.AddEntity(line19);
            Line line20 = new Line(fun.Polar(v18, -45 * pi / 180, 2), fun.Polar(v18, 135 * pi / 180, 2));
            dxf.AddEntity(line20);
            Line line21 = new Line(fun.Polar(v19, 45 * pi / 180, 2), fun.Polar(v19, -135 * pi / 180, 2));
            dxf.AddEntity(line21);
            Line line22 = new Line(fun.Polar(v19, -45 * pi / 180, 2), fun.Polar(v19, 135 * pi / 180, 2));
            dxf.AddEntity(line22);
            Line line23 = new Line(fun.Polar(v21, 45 * pi / 180, 2), fun.Polar(v21, -135 * pi / 180, 2));
            dxf.AddEntity(line23);
            Line line24 = new Line(fun.Polar(v21, -45 * pi / 180, 2), fun.Polar(v21, 135 * pi / 180, 2));
            dxf.AddEntity(line24);
            Line line25 = new Line(fun.Polar(v22, 45 * pi / 180, 2), fun.Polar(v22, -135 * pi / 180, 2));
            dxf.AddEntity(line25);
            Line line26 = new Line(fun.Polar(v22, -45 * pi / 180, 2), fun.Polar(v22, 135 * pi / 180, 2));
            dxf.AddEntity(line26);
            Line line27 = new Line(fun.Polar(v23, 45 * pi / 180, 2), fun.Polar(v23, -135 * pi / 180, 2));
            dxf.AddEntity(line27);
            Line line28 = new Line(fun.Polar(v23, -45 * pi / 180, 2), fun.Polar(v23, 135 * pi / 180, 2));
            dxf.AddEntity(line28);
            Line line29 = new Line(fun.Polar(v24, 45 * pi / 180, 2), fun.Polar(v24, -135 * pi / 180, 2));
            dxf.AddEntity(line29);
            Line line30 = new Line(fun.Polar(v24, -45 * pi / 180, 2), fun.Polar(v24, 135 * pi / 180, 2));
            dxf.AddEntity(line30);
            Line line31 = new Line(fun.Polar(v25, 45 * pi / 180, 2), fun.Polar(v25, -135 * pi / 180, 2));
            dxf.AddEntity(line31);
            Line line32 = new Line(fun.Polar(v25, -45 * pi / 180, 2), fun.Polar(v25, 135 * pi / 180, 2));
            dxf.AddEntity(line32);
            Line line33 = new Line(v15, v21);
            dxf.AddEntity(line33);
            Line line34 = new Line(v16, v22);
            dxf.AddEntity(line34);
            Line line35 = new Line(v17, v23);
            dxf.AddEntity(line35);
            Line line36 = new Line(v18, v24);
            dxf.AddEntity(line36);
            Line line37 = new Line(v19, v25);
            dxf.AddEntity(line37);








            fun.text(dxf, new Vector2(-65, 105), 5, "刀具失效如：VB");
            fun.text(dxf, new Vector2(190, -15), 5, "有效切削时间");
            fun.text(dxf, new Vector2(7, 110), 5, "刀具寿命判据");


            dxf.DrawingVariables.AcadVer = DxfVersion.AutoCad2007;
            dxf.Save(path);
        }
    }
}
